gpt4 book ai didi

ef-code-first - Entity Framework 5 代码首先将字符串全局映射到 varchar

转载 作者:行者123 更新时间:2023-12-04 01:54:28 25 4
gpt4 key购买 nike

我正在玩 EF 5 和代码。到目前为止,我真的很喜欢它,但我注意到它将字符串列默认为 nvarchar。如果我想使用 varchar,那么我必须明确告诉它。

我可以强制它对字符串使用 varchar 而不是 nvarchar ,如下所示:

public class Member
{
public int id { get; set; }

[MaxLength(255), Required, Column(TypeName = "varchar")]
public string firstName { get; set; }

[MaxLength(255), Required, Column(TypeName = "varchar")]
public string surname { get; set; }
}

不过,我通常会在几乎所有情况下使用 varchar 而不是 nvarchar,所以我更喜欢将字符串列全局映射到 varchar,并且如果需要,能够像上面那样按列设置 nvarchar。

有谁知道这样做的方法?我试图省略为模型中的每个字符串列键入 [Column(TypeName = "varchar")] 的需要。

最佳答案

在 EF 6 上,您可以使用它来映射每个字符串属性以使用 varchar 而不是 nvarchar

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties()
.Where(x =>
x.PropertyType.FullName.Equals("System.String") &&
!x.GetCustomAttributes(false).OfType<ColumnAttribute>().Where(q => q.TypeName != null && q.TypeName.Equals("varchar", StringComparison.InvariantCultureIgnoreCase)).Any())
.Configure(c =>
c.HasColumnType("varchar"));
}

关于ef-code-first - Entity Framework 5 代码首先将字符串全局映射到 varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com