我不知道问题的格式是否正确,但我想做的是在 using
循环之外创建 varservations
但不这样做知道如何初始化它。
此代码有效:
using (MainContextDB db = new MainContextDB())
{
var reservations = (from c in db.Reservations select new { c.CustAcctNo, c.ReservNo, c.ReservStatus }).ToList();
}
任何在循环外声明 var
的尝试都会触发错误:
Cannot convert List to List
我已经尝试过:
var reservations = new List<dynamic>();
var reservations = new List<object>();
此代码有效,但需要检索所有列,这不是我想要的:
List<Reservation> reservations = new List<Reservation>();
using (MainContextDB db = new MainContextDB())
{
reservations = db.Reservations.ToList();
}
最佳答案
你可以这样做:
var reservations = new []
{
new { CustAcctNo = "", ReservNo = "", ReservStatus = "" }
}.ToList();
using (MainContextDB db = new MainContextDB())
{
reservations = (
from c in db.Reservations
select new
{
c.CustAcctNo, c.ReservNo, c.ReservStatus
}).ToList();
}
您只需确保与匿名类成员的类型匹配即可。
另一个选项是添加对 Microsoft Reactive Framework 团队的“交互式扩展”的引用。他们有一个很好的 Using
enmerables 方法,可以让你做到这一点:
var reservations =
EnumerableEx
.Using(
() => new MainContextDB(),
db =>
from c in db.Reservations
select new
{
c.CustAcctNo, c.ReservNo, c.ReservStatus
})
.ToList();
关于c# - 匿名类型列表的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391994/