如何从流畅的API读取实体表名称和主键定义

时间:2016-04-18 22:59:25

标签: c# entity-framework fluent

我们正在使用EF配置使用FluentAPI。我们的目标是创建一个国际化结构,允许创建包含多个习语中项目名称和描述的表格。

但是为了让程序员更容易,根据这个样本,想法是创建一些函数来接收实体定义和属于国际化的属性:

public static new void CreateModel(DbModelBuilder modelBuilder)
{
   modelBuilder.Entity<City>().ToTable("Cities", "Common");
   modelBuilder.Entity<City>().Property(p => p.Acronym).HasMaxLength(20);
   modelBuilder.Entity<City>().Property(p => p.Acronym).IsOptional();
   modelBuilder.Entity<City>().Property(p => p.Name).IsRequired();
   modelBuilder.Entity<City>().HasRequired(c => c.State).WithMany(c => c.Cities).HasForeignKey(c => c.StateId);

   BuildLocalizedTable(modelBuilder, modelBuilder.Entity<City>, modelBuilder.Entity<City>().Property(p => p.Name));
}

在此代码中,您拥有实体CityBuildLocalizedTable()函数应从父实体读取表名和主键定义,并声明依赖实体,属性和导航任何其他成语中City的名称。

经过大量的研究,我找不到任何用于阅读实体定义的样本,而不是写作。愿这可能吗?

1 个答案:

答案 0 :(得分:0)

使用EF Code-First方法时,可以使用Fluent API。
Code-First将根据您的实体类和配置动态创建数据库。
要进行配置,我们可以使用DataAnnotations或Fluent API,但最后一个提供更多功能。

无法使用Fluent API读取实体定义,因为它仅用于配置新实体。我们使用Code-First因此,我们没有关于数据库的任何信息,因为我们首先编写类,然后Code First API将创建新数据库