asp.net – 实体框架CTP5,代码优先.可选的导航属性
发布时间:2020-09-02 03:08:24 所属栏目:asp.Net 来源:互联网
导读:我正在使用Entity Framework CTP5(代码优先),我有两个类: public class Order{ public int Id {get;set;} public decimal SomeOtherProperty1 {get;set;} //navigation property public virtual ICollectionOrderLi
我正在使用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-mvc – 所有请求获取HTTP错误401.2 – 未经授权的响
- asp.net-mvc-4 – MVC 4 Razor如果拆分div标签
- asp.net-mvc-2 – 在名称中使用连字符处理MVC2变量
- asp.net-mvc-3 – 如何避免使用MVC3 FileContentResult重复
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- asp.net-mvc – ASP.NET MVC3中的随机会话超时
- asp.net-core – 如何使用ASP.NET注册OData 5
- asp.net-mvc – asp.net mvc 4从控制器按钮调用方法
- asp.net-mvc – 如何忽略ASP.NET MVC 4中特定View文件夹或特
- asp.net – XMLHTTP请求的经典ASP错误
推荐文章
站长推荐
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net-web-api – ASP身份OAuth令牌 – 我应该
- js触发asp.net的Button的Onclick事件应用
- asp.net-mvc – 如何使用selenium进行ASP.NET MV
- asp.net-mvc – ASP.NET MVC检查Controller或Act
- Asp.NetCore1.1版本去掉project.json后如何打包生
- asp.net 根据汉字的拼音首字母搜索数据库(附 LIN
- asp.net-mvc – 不应加载引用程序集以执行
- asp.net-mvc – 神秘的ASP.NET MVC Action高延迟
- 如何设置特定于ASP.NET请求的log4net上下文属性?
热点阅读