- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑两个类。
public class File
{
[Key]
public string Id { get; set; }
public string Message_Id { get; set; }
internal Message Message { get; set; }
}
public class Message
{
[Key]
public string Id { get; set; }
}
在 EF6 中,对于 N : 1..0 关系,有这个流畅的 API。
modelBuilder.Entity<File>()
.HasOptional(e => e.Message ).WithMany().HasForeignKey(e => e.Message_Id);
Entity Framework Core 1 中的等效项是什么?
谢谢
最佳答案
您在 EF 7 中找不到等效方法。按照惯例,CLR 类型可以包含 null
的属性将被配置为可选。因此,决定该关系是否可选的是 FK 属性是否为 nullable或不分别。
综上所述,由于您的 Message_Id
FK 属性是 string
,它已经接受 null
值,因此如果您使用以下 Fluent Api配置:
modelBuilder.Entity<File>()
.HasOne(s => s.Message)
.WithMany()
.HasForeignKey(e => e.Message_Id)
EF 会将您的关系配置为可选(或根据要求 N : 0..1)。
如果您的 FK 属性是像 int
这样的值类型,您应该将其声明为可空 (int?
)。
我还注意到现在您有一个带有 internal
访问修饰符的导航属性。您应该始终将实体属性声明为 public
。
关于entity-framework - 相当于 Entity Framework Core 1 (EF7) 中的 .HasOptional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562483/
代码优先的 Fluent API 的 HasOptional 方法是否有对应的 DataAnnotation 属性? 我想用属性标记我的属性,而不是使用流畅的 API。 这是我当前的模型和 OnMod
ProjectManager是否可以在使用的时候通过ForeignKey加载 this.HasOptional(t => t.ProjectManager) .WithMany
我有以下实体 public class SchoolContext : DbContext { public DbSet Addresses { get; set; }
我在 Entity Framework 6.1.3 中有以下数据模型: using System.Data.Entity; public class Student { public int
考虑两个类。 public class File { [Key] public string Id { get; set; } public string Message_Id
我在一个项目中使用 EF,该项目具有我一直坚持使用的现有数据库。我有 2 个带有奇怪映射的表(我相信它是 0-1 到很多)。部分问题是字段中可能有垃圾,所以我希望完全有可能从 nav 属性中取回 nu
我有一个“类别”实体如下: public class Category { // //Fields... // public Guid CategoryId { g
我是一名优秀的程序员,十分优秀!