3
4年前问了这个问题:EF Mapping to prefix all column names within a table我希望这些日子有更好的处理。将列名约定添加到EF6 FluentAPI
我正在使用EF6 Fluent API,我将调用Code First Without Migrations。我有波苏斯我的模型,我的大部分数据库列名被定义为[SingularTableName]Field
(例如,CustomerAddress DB列映射在客户POCO地址字段)
表:
CREATE TABLE dbo.Customers (
-- ID, timestamps, etc.
CustomerName NVARCHAR(50),
CustomerAddress NVARCHAR(50)
-- etc.
);
型号:
public class Customer
{
// id, timestamp, etc
public string Name {get;set;}
public string Address {get;set;}
}
模型构建器:
modelBuilder<Customer>()
.Property(x => x.Name).HasColumnName("CustomerName");
modelBuilder<Customer>()
.Property(x => x.Address).HasColumnName("CustomerAddress");
目标:
我真正喜欢的是要能说这句话的FluentAPI:
modelBuilder<Customer>().ColumnPrefix("Customer");
// handle only unconventional field names here
// instead of having to map out column names for every column
谢谢。我快速浏览它,但稍后必须挖掘。问题:我没有使用EDMX模型,只使用POCO和带有db的流畅API配置初始化。如果没有EDMX模型,这仍然适用(我问,因为我看到了EdmProperty,我不熟悉这种模型)。 – jleach
更重要的是,它可以*仅用于代码优先:)但在后台,EF始终构建EDM(实体数据模型),因此名称为EdmProperty。 –
非常好。这看起来不错 - 我其实并没有期待这个答案,所以我很高兴看到它! – jleach