Entity Framework 7列名が無効です

c# entity-framework entity-framework-core

質問

私は既存のデータベースのEF7マッピングを作成していますが、「無効な列名」エラーが発生します。エラーをスローしているコードは次のとおりです。

public class DepositContext : DbContext
{
    public DbSet<tblBatch> Batches { get; set; }
    public DbSet<tblTransaction> Transactions { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<tblBatch>().HasKey(b => b.BatchID);

        modelBuilder.Entity<tblTransaction>().HasKey(t => t.TransactionID);

        modelBuilder.Entity<tblBatch>().HasMany(b => b.tblTransactions).WithOne().HasForeignKey(t => t.fBatchID);
    }
}

public class tblBatch
{
    public int BatchID { get; set; }
    public int? fDepositID { get; set; }
    public Guid BRN { get; set; }
    public string BCN { get; set; }
    public decimal? BCT { get; set; }
    public string BatchFileName { get; set; }

    public List<tblTransaction> tblTransactions { get; set; }
}

public class tblTransaction
{
    public int TransactionID { get; set; }
    public string TRN { get; set; }
    public string TransactionStatus { get; set; }

    public int fBatchID { get; set; }
    public tblBatch tblBatch { get; set; }
}

これは、 Invalid column name 'tblBatchBatchID1'.投げていInvalid column name 'tblBatchBatchID1'. SQLプロファイラを使用して、データベースに送信される内容を確認すると、次のようになります。

exec sp_executesql N'SELECT [t].[TransactionID], [t].[fBatchID], [t].[TRN], [t].[TransactionStatus], [t].[tblBatchBatchID1]
FROM [tblTransaction] AS [t]
INNER JOIN (
    SELECT DISTINCT TOP(1) [b].[BatchID]
    FROM [tblBatch] AS [b]
    WHERE [b].[BatchID] = @__BatchId_0
) AS [b] ON [t].[fBatchID] = [b].[BatchID]
ORDER BY [b].[BatchID]',N'@__BatchId_0 int',@__BatchId_0=37

誰もがこれを修正する方法を知っていますか?

人気のある回答

EF RC1にはクエリー生成時に間違ったカラム名を生成するバグがいくつかありました。あなたの問題に関連するかもしれないこのバグの一覧を見てください。

明示的に列名を設定することで、この問題を回避できます。

modelBuilder.Entity<tblBatch>().Property(e => e.BatchID).HasColumnName("BatchID");

あなたが勇気があるなら、EF CoreのRC2ナイトリーにアップグレードして問題が修正されているかどうかを確認することができます。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ