0

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

环顾四周,我发现在添加记录时,您可以执行以下操作(产品具有类别表的外键)。

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 条记录添加到在另一个表中具有单个外键的数据库中,则看不到好处。

4

1 回答 1

1

对于任何刚接触 Linq To Entities 并想知道我所做的事情的人......是的,这就是 Linq To Entities 的样子。您需要引用一个实际的对象,而不是仅仅给出一个外键。

在我看来,这会对性能造成不利影响,但从我目前所做的来看,性能一点也不差。实际上它比 Linq To SQL 更好。

于 2008-12-24T05:43:28.783 回答