Questions tagged «entity-framework-4.3»

6
.AsNoTracking()有什么区别?
我对.AsNoTracking()扩展名有疑问,因为这都是很新的,也很令人困惑。 我正在为网站使用每个请求的上下文。 我的许多实体都不会更改,因此不需要跟踪,但是在以下情况下,我不确定数据库的内容,甚至不确定在这种情况下是否有所作为。 这个例子是我目前正在做的: context.Set<User>().AsNoTracking() // Step 1) Get user context.Set<User>() // Step 2) Update user 与上面相同,但是.AsNoTracking()从步骤1中删除了: context.Set<User>(); // Step 1) Get user context.Set<User>() // Step 2) Update user 步骤1和2使用相同的上下文,但是发生在不同的时间。我无法解决的是是否有任何区别。由于第2步是更新,因此我猜两者都将两次访问数据库。 谁能告诉我有什么区别?

12
实体框架:一个数据库,多个DbContext。这是一个坏主意吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 上个月关闭。 改善这个问题 迄今为止,我的印象是a DbContext表示您的数据库,因此,如果您的应用程序使用一个数据库,则只需要一个DbContext。 但是,一些同事希望将功能区域划分为不同的DbContext类。 我相信这是一个好地方-希望保持代码更清洁-但它似乎不稳定。我的直觉告诉我这是一个坏主意,但不幸的是,我的直觉并不能满足设计决策的要求。 所以我在寻找: A)为什么这可能不是一个好主意的具体例子; B)保证一切都会顺利进行。



2
如何在EF 4.3中使用带有复杂键的AddOrUpdate播种数据
我正在尝试使用一些测试数据为开发数据库播种。 我已经用context.People.AddOrUpdate(p => p.Id, people));了很多成功。 我还有另一个表需要种子,我不知道其中的主键。 例如,我想基于名字和姓氏匹配来添加或更新。 我不确定如何正确编写表达式。 context.People.AddOrUpdate(p => p.FirstName && p.LastName, people); 显然是不正确的,但我希望它能传达我正在寻找的解决方案。

4
实体框架-有没有自动方法而无需Include()来自动加载子实体的方法吗?
有没有办法装饰您的POCO类以自动渴望加载子实体,而不必Include()每次加载它们时都使用它们? 假设我有一辆有轮,门,引擎,保险杠,窗户,排气等复杂类型属性的类车。在我的应用中,我需要从DbContext的20个不同的地方加载汽车,并进行不同的查询,等等。不需要指定每次要加载汽车时都包含所有属性。 我想说 List<Car> cars = db.Car .Where(x => c.Make == "Ford").ToList(); //NOT .Include(x => x.Wheels).Include(x => x.Doors).Include(x => x.Engine).Include(x => x.Bumper).Include(x => x.Windows) foreach(Car car in cars) { //I don't want a null reference here. String myString = car.**Bumper**.Title; } 我可以以某种方式装饰我的POCO类或在我的POCO类中OnModelCreating()设置还是在EF中设置一个配置,以告诉它在加载汽车时仅加载汽车的所有零件?我希望能做到这一点,所以我的理解是将导航属性设置为虚拟。我知道NHibernate支持类似的功能。 只是想知道我是否缺少什么。提前致谢! 干杯, 内森 我喜欢下面的解决方案,但想知道是否可以将对扩展方法的调用嵌套。例如,假设我在Engine上遇到类似的情况,其中有很多我不想包含在所有地方的零件。我可以做这样的事情吗?(我还没有找到一种可行的方法)。这样,如果以后发现Engine需要FuelInjectors,则可以仅将其添加到BuildEngine中,而不必也将其添加到BuildCar中。另外,如果可以嵌套调用,如何嵌套对集合的调用?是否想从BuildCar()中为每个车轮调用BuildWheel()? public static IQueryable<Car> BuildCar(this …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.