我们正在使用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));
}
在此代码中,您拥有实体City
,BuildLocalizedTable()
函数应从父实体读取表名和主键定义,并声明依赖实体,属性和导航任何其他成语中City
的名称。
经过大量的研究,我找不到任何用于阅读实体定义的样本,而不是写作。愿这可能吗?
答案 0 :(得分:0)
使用EF Code-First方法时,可以使用Fluent API。
Code-First将根据您的实体类和配置动态创建数据库。
要进行配置,我们可以使用DataAnnotations或Fluent API,但最后一个提供更多功能。
无法使用Fluent API读取实体定义,因为它仅用于配置新实体。我们使用Code-First因此,我们没有关于数据库的任何信息,因为我们首先编写类,然后Code First API将创建新数据库