我正在开发一个具有许多已经存在的表映射的应用程序,例如
public DbSet<Activity> Activities { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Activity>().ToTable("Activity", "MES_WVM");
modelBuilder.Entity<Activity>().HasKey(r => new { r.ActivityID });
}
对于我最终使用的大多数表格都可以正常工作。我现在的任务是创建一些新功能,这需要我从新表中提取数据。这些表没有主键,我无权更改它。这篇关于使用流畅 api状态进行映射的MSDN 文章
按照惯例,没有指定主键的类型被视为复杂类型。在某些情况下,Code First 不会检测到复杂类型(例如,如果您确实有一个名为 ID 的属性,但您并不意味着它是主键)。在这种情况下,您将使用 fluent API 显式指定类型是复杂类型。
modelBuilder.ComplexType<Details>();
使用上面的方法不允许我使用ToTable()
将这种类型映射到数据库表。我如何使用流利的 API 做到这一点。我还想强调,我不打算在 DB 键中提供表,即使它们确实应该这样做。