Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to entities LINQTO实体和外键_Linq To Entities_Foreign Key Relationship - Fatal编程技术网

Linq to entities LINQTO实体和外键

Linq to entities LINQTO实体和外键,linq-to-entities,foreign-key-relationship,Linq To Entities,Foreign Key Relationship,我尝试使用LinqToEntities,只是注意到数据模型中没有外键字段。在尝试添加记录时,这似乎会引起一些麻烦 环顾四周,我发现当添加记录时,您可以执行类似的操作(产品在类别表中有一个外键) 我相信有更好的办法。但我的问题是,这就是它在Linqtoeties的运作方式吗?在我看来,这比简单地给它一个外键(即myProduct.CategoryID=CategoryID)要复杂得多 如果我在一个表中有5个外键,我必须检索5个对象才能将它们链接起来 我可以看到上面的操作是如何有意义和好处的,但是如

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

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

我相信有更好的办法。但我的问题是,这就是它在Linqtoeties的运作方式吗?在我看来,这比简单地给它一个外键(即myProduct.CategoryID=CategoryID)要复杂得多

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


我可以看到上面的操作是如何有意义和好处的,但是如果您只是试图向数据库中添加一条记录,而该记录在另一个表中只有一个外键,那么我看不出有什么好处。

对于刚刚接触Linq to Entities并对我所做的事情感到好奇的人来说。。。是的,这就是Linq到实体的方式。您需要引用实际对象,而不仅仅是提供外键

在我看来,这可能会对性能造成不良影响,但从我目前所做的来看,性能一点也不差。实际上,它比linqtosql要好

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