asp.net-mvc-3 – 设置表级别WillCascadeOnDelete不可用
发布时间:2020-12-16 07:23:47 所属栏目:asp.Net 来源:网络整理
导读:我在这里拉出我的头发.我在这里看到了关闭删除级联的解决方案,但我无法实现它.我不知道我在这里做错了什么,但我一直得到以下错误: ‘System.Data.Entity.ModelConfiguration.EntityTypeConfiguration’不包含’WillCascadeOnDelete’的定义,并且没有扩展方
我在这里拉出我的头发.我在这里看到了关闭删除级联的解决方案,但我无法实现它.我不知道我在这里做错了什么,但我一直得到以下错误:
‘System.Data.Entity.ModelConfiguration.EntityTypeConfiguration’不包含’WillCascadeOnDelete’的定义,并且没有扩展方法’WillCascadeOnDelete’接受类型’System.Data.Entity.ModelConfiguration.EntityTypeConfiguration’的第一个参数可以找到(你是吗?)缺少using指令或程序集引用?) 我已经添加了必要的命名空间,但我不认为它是intellisense中的任何选项,我没有在任何地方搜索.我在VS 2010 MVC 3中 using System; using System.Collections.Generic; using System.Linq; using System.Web; using vf2.Models; using vf2.Models.LinkTables; using vf2.Models.Requests; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; using System.Data.Entity.ModelConfiguration.Configuration; using System.Data.Entity.ModelConfiguration; using vf2.Models.Reporting; using vf2.Models.POSObj; namespace vf2.Models { public class vfContext : DbContext { public DbSet<App> Apps { get; set; } public DbSet<Origin> Origins { get; set; } public DbSet<WineType> WineTypes { get; set; } public DbSet<VarType> VarTypes { get; set; } public DbSet<Wine> Wines { get; set; } public DbSet<Vintage> Vintages { get; set; } public DbSet<Distributor> Distributors { get; set; } public DbSet<Importer> Importers { get; set; } public DbSet<Producer> Producers { get; set; } public DbSet<Publication> Publications { get; set; } public DbSet<Review> Reviews { get; set; } public DbSet<UserType> UserTypes { get; set; } public DbSet<Restaurant> Restaurants { get; set; } public DbSet<WineListChangeRate> WineListChangeRates { get; set; } public DbSet<MenuChangeRate> MenuChangeRates { get; set; } public DbSet<WineListCount> WineListCounts { get; set; } public DbSet<UserObj> UserObjs { get; set; } public DbSet<ProducerUser> ProducerUsers { get; set; } public DbSet<DistributorUser> DistributorUsers { get; set; } public DbSet<RestaurantUser> RestaurantUsers { get; set; } public DbSet<ProducerEditRequest> ProducerEditRequests { get; set; } public DbSet<RequestStatus> RequestStatuses { get; set; } public DbSet<VOAVIRequest> VOAVIRequests { get; set; } public DbSet<POS> POSs { get; set; } public DbSet<Cart> Carts { get; set; } public DbSet<FutureUser> FutureUsers { get; set; } public DbSet<Doc> Docs { get; set; } public DbSet<DocType> DocTypes { get; set; } public DbSet<WineVisit> WineVisits { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Review>().WillCascadeOnDelete(false); //error here! base.OnModelCreating(modelBuilder); } } } 解决方法
“级联删除”是关系的配置,而不是实体/表的配置.因此,WillCascadeOnDelete是CascadableNavigationPropertyConfiguration的方法.用例示例:
modelBuilder.Entity<Review>() .HasRequired(r => r.Wine) .WithMany() .WillCascadeOnDelete(false); 这意味着如果从数据库中的目录中删除葡萄酒,则不应将其评论与葡萄酒一起删除.这是这种特定关系的属性,而不是评论表的属性. 在这种情况下,尝试删除具有评论的葡萄酒会导致外键约束违规和当然例外,但这是您在所需关系上禁用级联删除时通常需要的(“不允许删除葡萄酒”有评论,只允许它没有任何……“)的葡萄酒. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 实体框架数据库 – 第一个uniqueidentity结
- ASP.NET 2.0或3.5?
- asp.net-mvc – 为什么我的样式表重定向到我的登录?
- asp.net-core – EntityFramework核心数据库首先接近多个表
- 如何解决分布式系统中的跨时区问题[实例篇]
- asp.net-mvc – EF上下文管理
- ASP.NET MVC – 将XHTML添加到验证错误消息中
- asp.net-mvc – 在MVC5中呈现Razor的部分视图
- asp.net – Webservices可以作为单身人士引起不同用户的问题
- asp.net – 如果我没有指定targetFramework =“4.0”会发生
推荐文章
站长推荐
- asp.net-mvc-4 – MVC 4日期文化问题?
- asp.net-mvc – .NET 4.5 MVC RouteCollection.L
- ASP.NET 路由配置
- 如何使用ASP.NET在纯HTML页面上执行表单验证?
- .net – System.Management访问被拒绝
- 如何从ASP.NET MVC中的窗体身份验证拦截401?
- asp.net-mvc-3 – 自定义错误适用于HttpCode 403
- asp.net – 使用OAuth在Web API中进行身份验证
- asp.net-mvc – MVC5注销链接从不同区域失败
- asp.net – 为VS2010和TFS中的团队管理web.confi
热点阅读