sysdtslog90 是我们使用的用于记录 SSIS 信息的数据库表。它有几个列名也是 C# 关键字:事件和运算符。
我使用 EF 的 Reverse Engineer Code First 创建模型和映射对象。模型的名称前面有一个@,而映射没有。结果,抛出错误(指向映射文件):
; 预期的
无法将 lambda 表达式转换为类型“t”,因为它不是委托类型
当我将 @ 添加到映射文件中的名称时,它将正确编译。(换句话说t.@event而不是t.event。)
如何更改 Mapper 以使其创建与模型相同的名称?
映射片段:(没有 @ )
public class sysdtslog90Map : EntityTypeConfiguration<sysdtslog90>
{
public sysdtslog90Map()
{
// Primary Key
this.HasKey(t => t.id);
// Properties
this.Property(t => t.event)
.IsRequired()
.HasMaxLength(128);
this.Property(t => t.operator)
.IsRequired()
.HasMaxLength(128);
模型片段:
public partial class sysdtslog90
{
...
public string @event { get; set; }
...
public string @operator { get; set; }
...
}