Linq to Sql创建数据库外键问题

本文关键字:问题 数据库 创建 to Sql Linq | 更新日期: 2023-09-27 18:02:50

我在项目中使用LINQ到SQL。我正在使用DataContext.CreateDatabase()方法来创建数据库。

存在一个ID为OK的Master表

其他表引用这个ID为FK。我在FK中设置了Update and Delete角色为Cascade。因此,每当从主表中删除记录时,所有引用记录都会自动从所有子表中删除。

如果我删除数据库并启动我的应用程序,它会在启动时检查数据库是否存在。成功创建数据库。但问题是在创建FK中。Update和Delete role设置为No Action,而不是Cascade。因此,我必须手动更改所有FK更新和删除规范为级联

有人面临这个问题吗?解决方案是什么?

Linq to Sql创建数据库外键问题

您可以使用DeleteOnNull=true来执行关联的删除。

请注意,DeleteOnNull与删除时的级联并不完全相同,因为这种删除是在c#代码中完成的,而不是在数据库中完成的-详细信息请参阅此博客http://blogs.msdn.com/b/dinesh.kulkarni/archive/2008/05/11/linq-to-sql-tips-4-use-deleteonnull-if-you-want-to-delete-object-with-null-fk.aspx