asp.net – 实体框架CTP5,代码优先.可选的导航属性
发布时间:2020-12-15 21:01:22 所属栏目:asp.Net 来源:网络整理
导读:我正在使用Entity Framework CTP5(代码优先),我有两个类: public class Order{ public int Id {get;set;} public decimal SomeOtherProperty1 {get;set;} //navigation property public virtual ICollectionOrderLine OrderLines { get; set; } } 和 public
我正在使用Entity Framework CTP5(代码优先),我有两个类:
public class Order { public int Id {get;set;} public decimal SomeOtherProperty1 {get;set;} //navigation property public virtual ICollection<OrderLine> OrderLines { get; set; } } 和 public class OrderLine { public int Id {get;set;} public int OrderId {get;set;} public decimal SomeOtherProperty2 {get;set;} //navigation property public virtual Order Order { get; set; } } 我有OrderLine类的以下配置类: public partial class OrderLineMap : EntityTypeConfiguration<OrderLine> { public OrderLineMap() { this.HasKey(ol=> ol.Id); this.HasRequired(ol=> ol.Order) .WithMany(o => o.OrderLines) .HasForeignKey(ol=> ol.OrderId); } } 目前,如果您创建“OrderLine”实例,则必须指定“订单”实例. 问题:如何使ol.Order属性可选(在某些情况下为null)?可能吗? 解决方法
OrderLine上现在需要Order的原因是因为您在流畅的API代码中使用了HasRequired()来配置关联.我们只需将其更改为HasOptional,如下面的代码所示:
this.HasOptional(ol => ol.Order) .WithMany(o => o.OrderLines) .HasForeignKey(ol => ol.OrderId); 这将基本上使OrderLines.OrderId列成为DB中的(INT,NULL),以便OrderLine记录是独立的.我们还需要通过在OrderLine类上使OrderId为空来反映对象模型中的这种变化: public class OrderLine { public int Id { get; set; } public int? OrderId { get; set; } public decimal SomeOtherProperty2 { get; set; } public virtual Order Order { get; set; } } 现在,您可以保存OrderLines而无需为它们指定订单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET Core应用中如何设置和获取与执行环境相关的信息?
- asp.net-mvc-4 – 带有绝对路径的ASP.NET MVC Bundle
- asp.net-mvc-3 – MVC3 – 每次调用两次控制器索引操作
- asp.net-mvc – 您使用ASP.NET MVC的View Engine是什么?
- IIS ASP.NET vs(NGINX FastCGI Mono或XSP)的性能?
- .Net Linq与Lambda表达式中GroupBy以多个字段分组
- 如何在ASP.NET中本地化App_GlobalResources?
- asp.net-mvc – Asp.Net MVC – 进修课程
- asp.net – 解析美国邮政地址的免费API?
- asp.net-mvc – 将ASP.NET MVC布局应用于Jquery.Mobile页面
推荐文章
站长推荐
- asp.net – SignalR不再工作“找不到包含OwinSta
- asp.net-mvc – 从MVC剃刀模型调用Bootstrap 3 M
- asp.net – HttpContext.Current.Cache可用于所有
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net core系列 38 WebAPI 返回类型与响应格式
- 什么是ASP.Net相当于PHP的回声?
- 在ASP.Net ReportViewer中使用SSRS
- asp.net – 使用数据库的整数数据域绑定gridview
- asp.net-mvc – 使用viewmodel时的asp.net mvc验
- QueryString与ASP.NET MVC 6锚点标签助手
热点阅读