Welcome

首页 / 软件开发 / LINQ / LINQ TO SQL中SQLMetal和Mapping文件缺陷

LINQ TO SQL中SQLMetal和Mapping文件缺陷2011-12-27 roping Mapping文件的缺陷

开发LINQ TO SQL,我个人倾向选择外部配置文件的方式进行开发,灵活,(这个也是.Net平台下的建议选择,如果你了解WCF,会更有体会)。 利用SQLMeatal开发Mapping文件的时候,在修改Association节的DeleteRule属性的时候,感觉是LING TO SQL的缺陷。

MSND:

NET Framework 类库

AssociationAttribute..::.DeleteRule 属性

更新:2007 年 11 月

获取或设置关联的删除行为。

命名空间: System.Data.Linq.Mapping

程序集: System.Data.Linq(在 System.Data.Linq.dll 中)

类型:System..::.String

一个表示规则的字符串。

备注

如果设置为 null,则不会添加任何删除行为。例如,“CASCADE”会将“ON DELETE CASCADE”添加到外键关系

本例子以NorthWind为例子,按照这种说法,我在Order和Oder_Detail对象的关系设置如下:

<Association Name="FK_Order_Details_Orders" Member="OrderDetails" Storage="_OrderDetails" ThisKey="OrderID" OtherKey="OrderID" DeleteRule="ON DELETE CASCADE" />

这样即使我把数据库中Oders表和Order Details表之间关系解除,LINQ TO SQL运行时应该会探测这一关系,进行先删除Order Details相关的行,然后再删除Order。