Linq To Entities和Foreign Keys

时间:2008-11-28 00:10:23

标签: linq-to-entities foreign-key-relationship

我正在尝试使用LinqToEntities,只是注意到数据模型中没有外键字段。这似乎在尝试添加记录时会造成一些麻烦。

阅读我发现在添加记录时你可以做类似这样的事情(Product有Categories表的外键)。

Product myProduct = new Product();
myProduct.ProductName = ProductName;
myProduct.Categories = db.CategorySet.Where(c => c.CategoryID == CategoryID).First();
db.AddToProductSet(myProduct);
db.SaveChanges();

我确信有更好的方法可以做到这一点。但我的问题是,它是如何在LinqToEntities中运作的?在我看来,这比简单地给它一个外键(即myProduct.CategoryID = categoryid)复杂得多。

如果我在表中有5个外键,我将不得不检索5个对象才能将它们链接起来?

我可以看到上面的操作如何有意义并且有好处,但是如果您只是尝试将1条记录添加到另一个表中具有单个外键的数据库中,则不会看到好处。

1 个答案:

答案 0 :(得分:1)

对于任何对Linq To Entities不熟悉并且想知道我做过同样事情的人...是的,这就是Linq To Entities的方式。您需要引用实际对象而不是仅提供外键。

对我而言,这会对性能造成不利影响,但从我迄今为止所做的事情来看,性能并不差。实际上它比Linq To SQL更好。