我正在尝试使用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条记录添加到另一个表中具有单个外键的数据库中,则不会看到好处。
答案 0 :(得分:1)
对于任何对Linq To Entities不熟悉并且想知道我做过同样事情的人...是的,这就是Linq To Entities的方式。您需要引用实际对象而不是仅提供外键。
对我而言,这会对性能造成不利影响,但从我迄今为止所做的事情来看,性能并不差。实际上它比Linq To SQL更好。