我在教程中看到了很多,导航属性为ICollection<T>
.
这是实体框架的强制性要求吗?我可以用IEnumerable
吗?
使用ICollection
代替IEnumerable
甚至是什么的主要目的是List<T>
什么?
通常 LINQ to SQL 和 LINQ to Objects 之间的区别不是问题(我认为从一开始就将其作为问题是过早的优化),但是我如何确定发生了什么?
在编写代码时知道会很有用,但我担心有时只能在运行时确定。
我正在尝试查询数据库集,但是当我得到结果时,我似乎无法访问数据.这是我试过的代码.
查询#1:
public List<CustomerMain> testing()
{
var context = new CustomerEntities();
var query = context.CustomerMains
.Where(p=> p.FirstName == "Thor")
.Select(p => new CustomerMain {FirstName=p.FirstName,LastName =p.LastName}).ToList();
return query;
}
Run Code Online (Sandbox Code Playgroud)
查询#2:
public IQueryable<CustomerMain> testing()
{
var context = new CustomerEntities();
var query = context.CustomerMains
.Where(p=> p.FirstName == "Thor")
.Select(p => new CustomerMain {FirstName=p.FirstName,LastName =p.LastName});
return query;
}
Run Code Online (Sandbox Code Playgroud)
CustomerMain
是我的DbSet
,如果我运行其中任何一个并将方法分配给var变量,它就没有选择从变量中获取FirstName
或LastName
从变量中获取.如果我将它转换为a CustomerMain
,我发现我可以这样做,但是返回查询不应该CustomerMain
已经在一个类型中吗?