gpt4 book ai didi

c# - 如何在 Entity Framework 数据上下文中的属性名称中使用 sql 保留关键字?

转载 作者:太空狗 更新时间:2023-10-29 17:58:31 26 4
gpt4 key购买 nike

以下代码抛出异常“EntitySqlException: 'Group' 是一个保留关键字,不能用作别名,除非它被转义。靠近第 1 行,第 11 列”。

我的问题首先是为什么我在数据上下文中选择的集合名称与生成的 sql 查询似乎有任何关系?

其次,除了在我的上下文中重命名该属性之外,我还能做些什么来解决它(我知道这个名字很愚蠢,有一些原因我无法更改名称,尽管我很想这样做,那我不会进入这里)?

我可以用 modelBuilder 做点什么吗?

public class GroupEntity
{
public int GroupEntityId { get; set; }
public string Name { get; set; }
}

public class MyContext : DbContext
{
public MyContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Group = Set<GroupEntity>();
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<GroupEntity>().ToTable("GroupEntities");
base.OnModelCreating(modelBuilder);
}

public DbSet<GroupEntity> Group { get; private set; }
}

//...
using (var ctx = new MyContext("valid connection string"))
{
var e = ctx.Group.Count(a => a.GroupEntityId % 2 == 0);
// Exception thrown here
Console.WriteLine(e);
}

最佳答案

这在 EF 4.3.1 和 EF 5.0 beta1 中已修复。请使用 NuGet 将 EntityFramework 包更新到最新版本。例如,在包管理器控制台中,运行:

Update-Package EntityFramework

关于c# - 如何在 Entity Framework 数据上下文中的属性名称中使用 sql 保留关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9632051/

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