Linq to SQL多对多关系 - 插入更新&删除

时间:2011-03-22 05:27:23

标签: c# asp.net-mvc-3 linq-to-sql

我有一个数据库依赖于一堆多对多而不是非整数化整个数据库(这是非常大的)我想知道是否有一种简单的方法来实现多对多关系使用LINQ-to-SQL然而......

我看到的任何地方我都找到了关于如何困难的文章,或者简单的解决方法实际上是“非”简单。但是我使用asp.net 3.5可以找到所有可以找到的文章。

我应该只创建一个存储过程然后将其作为方法拖到.DBML文件中吗?

所以我想我的问题是:

是否有任何新方法可以在ASP.NET 4.0中使用Linq-to-Sql以及MVC 3实现多对多。


我的项目中的用法示例:

DBML

在完成的模型中,将有其他表链接到多对多表(即EventAddress,EventUrl,VipAddress,VipPicture,GuestAddress,GuestPhone,GuestEmail等...)

所以你可以看到这将是一个痛苦的a $$ to denormalize。

谢谢你, 添

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用实体框架? 它很好地处理m:n关系。在您的情况下,EmployeeAddress表将被抽象为Employee对象上的地址列表。 我的印象是,linq to sql并不是微软的优先考虑因素,EF Is。 我知道如果您不希望转换现有项目,但对于新项目,EF4可能更适合。

答案 1 :(得分:0)

LINQ to SQL将始终直接映射到数据库的结构。如果您的数据库具有所有这些联结表,那么它们将在您的LINQ to SQL模型中 - 期间。

答案 2 :(得分:0)

  

虽然您可以在LINQ to SQL中映射多对多关系   和LINQ to Entities,LINQ to Entities允许直接映射   没有中间类的多对多关系,而LINQ为   SQL要求中间类为每个类映射一对多   与多对多关系一致的课程。

link to the quote above - http://msdn.microsoft.com/en-us/library/cc161164.aspx