2

要在 EF6 Code First 中映射列,我们使用以下代码,例如:

Property(o => o.Email).HasColumnType("varchar").HasMaxLength(255).IsRequired();

为了防止为所有电子邮件列(例如)多次写入“.HasColumnType("varchar").HasMaxLength(255)”,我想将其分解并定义一个我可以在每次需要时使用的电子邮件配置。我想这样做:

Property(o => o.Email).IsEmailColumn(EMail).IsRequired();

我怎样才能做到这一点 ?

谢谢你。

4

1 回答 1

3

您可以将通用代码放在自定义的“流利”扩展方法中,如下所示:

using System.Data.Entity.ModelConfiguration.Configuration;

public static partial class ConfigurationExtensions
{
    public static StringPropertyConfiguration IsEmailColumn(this StringPropertyConfiguration property)
    {
        return property.HasColumnType("varchar").HasMaxLength(255);
    }
}

它允许您使用

Property(o => o.Email).IsEmailColumn().IsRequired();
于 2018-02-10T09:33:11.413 回答