相关疑难解决方法(0)

如何使用T-SQL临时禁用外键约束?

是否禁用和启用SQL Server支持的外键约束?或者是我唯一的选择drop,然后重新create约束?

t-sql sql-server constraints foreign-keys

805
推荐指数
10
解决办法
59万
查看次数

外键约束可能导致循环或多个级联路径?

当我尝试向表格添加约束时,我遇到了问题.我收到错误:

在表'Employee'上引入FOREIGN KEY约束'FK74988DB24B3C886'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.

我的约束是在Code表和employee表之间.该Code表包括Id,Name,FriendlyName,TypeValue.在employee具有许多参考代码,使得可以存在对于每种类型的码的参考字段.

如果删除引用的代码,我需要将字段设置为null.

我有什么想法可以做到这一点?

sql sql-server constraints

171
推荐指数
4
解决办法
12万
查看次数

在表上引入FOREIGN KEY约束可能会导致循环或多个级联路径导致Database.SetInitializer不起作用?

我的代码优先数据库工作得很好.如果我对数据库上下文进行了更改,则下次启动应用程序时将更新数据库.但后来我在数据库中添加了一些模型,并在重新启动应用程序时出现此错误:

Introducing FOREIGN KEY constraint 'FK_OrderDetails_Orders_OrderId' on table 'OrderDetails' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. Could not create constraint. See previous errors.

其中一个奇怪的事情是,如果我再次启动应用程序而不更改任何内容,那么我会收到此错误:

Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations.

为了再次发生第一个错误,我必须删除我的.mdf和.ldf文件(数据库),并用我的修订历史记录中的副本替换.mdf文件.

世界上为什么会发生这种情况?


以供参考:

我的Global.asax.cs文件在Application_Start()方法中有这个:

Database.SetInitializer<EfDbContext>(new EfDbContextInitializer());

看起来像这样:

public class …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc database-design entity-framework asp.net-mvc-3 entity-framework-4.3

4
推荐指数
1
解决办法
7295
查看次数