如何将实体框架模型映射到多个表? 如何对特定表执行插入操作(通过引用存储表名的字符串)?
答案 0 :(得分:1)
我没有实现这一点,但快速搜索提供了很多很好的例子,称为实体拆分。以下内容应该有用:
public partial class Employee
{
// These fields come from the “Employee” table
public int EmployeeId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
// These fields come from the “EmployeeDetails” table
public string PhoneNumber { get; set; }
public string EmailAddress { get; set; }
}
public partial class Model : DbContext
{
public Model() : base("name=EntityModel")
{
Database.Log = Console.WriteLine;
}
public virtual DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.Map(map =>
{
map.Properties(p => new
{
p.EmployeeId,
p.Name,
p.Code
});
map.ToTable("Employee");
})
// Map to the Users table
.Map(map =>
{
map.Properties(p => new
{
p.PhoneNumber,
p.EmailAddress
});
map.ToTable("EmployeeDetails");
});
}
}
上述代码的所有功劳都归到了帖子
答案 1 :(得分:1)
在这种情况下,您可以使用IModelCacheKeyFactory
,它可以挂接到模型缓存机制中,以便EF能够根据其属性创建不同的模型。
答案 2 :(得分:0)
您必须使用实体拆分
here就是一个例子。
答案 3 :(得分:0)
我正在与您分享教程链接。 你可以彻底理解实体分裂的概念。 在本教程中,教师通过一个场景解释实体拆分,其中他有两个用户信息表。在一个表中他有用户名等,而在另一个表中他有用户的地址。但在应用程序级别,用户详细信息和用户地址之间没有分离。当用户保存数据时,它会转到两个不同的表格。
here是教程链接。
您也可以免费从torrent下载。