Asp.net mvc .Net实体框架忽略基于ConnectionString的约束

Asp.net mvc .Net实体框架忽略基于ConnectionString的约束,asp.net-mvc,entity-framework,connection-string,Asp.net Mvc,Entity Framework,Connection String,在代码优先的方法中,我有一个DBContext。它将接受连接字符串作为参数 我可以根据用户提供的连接字符串忽略外键约束吗 public class EFDbContext : DbContext{ public EFDbContext(string connection="Default"):base(connection) { } public DbSet<Contact> Contact { get; set; } } 我对该实体的使用是

在代码优先的方法中,我有一个
DBContext
。它将接受连接字符串作为参数

我可以根据用户提供的连接字符串忽略外键约束吗

public class EFDbContext : DbContext{
     public EFDbContext(string connection="Default"):base(connection)
     {
     }
     public DbSet<Contact> Contact { get; set; }
}
我对该实体的使用是:

 EFDbContext context=new EFDbContext();
 EFDbContext context1=new EFDbContext("NoRelationsDB"); //If the connection string is this then we have to ignore all the constraints in Tables.
我可以根据用户提供的连接字符串忽略外键约束吗

public class EFDbContext : DbContext{
     public EFDbContext(string connection="Default"):base(connection)
     {
     }
     public DbSet<Contact> Contact { get; set; }
}
否。外键约束是数据库中架构设计的一部分。将对所有用户强制(或不强制)这些约束

在SQL Server中,有两种情况会忽略约束。如果将约束标记为不用于复制,则允许复制代理绕过这些约束。如果使用批量API加载数据,可以选择跳过约束检查

除此之外,您可以禁用所有约束、加载数据,然后重新启用它们。或者,您可以使用触发器强制执行引用完整性,并在某些情况下对触发器进行编码以跳过检查

我可以根据用户提供的连接字符串忽略外键约束吗

public class EFDbContext : DbContext{
     public EFDbContext(string connection="Default"):base(connection)
     {
     }
     public DbSet<Contact> Contact { get; set; }
}
否。外键约束是数据库中架构设计的一部分。将对所有用户强制(或不强制)这些约束

在SQL Server中,有两种情况会忽略约束。如果将约束标记为不用于复制,则允许复制代理绕过这些约束。如果使用批量API加载数据,可以选择跳过约束检查


除此之外,您可以禁用所有约束、加载数据,然后重新启用它们。或者,您可以使用触发器强制执行引用完整性,并在某些情况下对触发器进行编码以跳过检查。

如果您想忽略这些约束,使用它们有什么意义?约束的存在是有原因的。你为什么有时要忽略它们?不知何故,它闻起来像是一个设计缺陷。如果你想忽略这些约束,拥有它们有什么意义?约束的存在是有原因的。你为什么有时要忽略它们?不知何故,它闻起来像是一个设计缺陷。用户使用不同的连接字符串,采用代码优先的方法。若连接字符串指向不同的物理数据库,那个么为什么要说“不”?阅读他的问题
如果DB是norrelationsdb
…单个AppDomain中相同DbContext类型的两个不同实例不能有不同的模型。OnModelCreating()仅在首次创建DbContext类型的实例时运行。并且该模型对现有数据库中的FK约束没有影响。好的,你是对的,如果你编辑你的答案,我可以删除我的否决票。用户使用不同的连接字符串和代码优先的方法。若连接字符串指向不同的物理数据库,那个么为什么要说“不”?阅读他的问题
如果DB是norrelationsdb
…单个AppDomain中相同DbContext类型的两个不同实例不能有不同的模型。OnModelCreating()仅在首次创建DbContext类型的实例时运行。模型对现有数据库中的FK约束没有影响。好的,你是对的,如果你编辑你的答案,我可以删除我的否决票。