まず、Ef 4.1コードを使用しています。EF 4.1のコードが最初に親オブジェクトと子オブジェクトを挿入する際に問題が発生する
私はfollwingエラーを取得し、私が間違っているのかわからないのです。彼らの関係のために外部キープロパティを公開していないエンティティを節約しながら
エラーが発生しました。 EntityEntriesプロパティは、単一のエンティティが例外のソースとして識別できないため、nullを返します。エンティティタイプに外部キーのプロパティを公開することで、保存時の例外処理を簡単に行うことができます。詳細については、InnerExceptionを参照してください。
内部例外:
無効な列名 'GrantApplicationIs'。 無効な列名 'GrantApplication_Id'です。
私は認可アプリケーションを持っており、データベースに保存するときに監査エントリを追加しようとしています。
ここは私の状況です:
public class HbfContext : DbContext
{
public DbSet<Bank> Banks { get; set; }
public DbSet<AccountType> AccountTypes { get; set; }
public DbSet<GrantApplication> GrantApplications { get; set; }
public DbSet<AuditEntry> AuditEntries { get; set; }
}
グラントApplicationクラス:
public class GrantApplication
{
public int Id { get; set; }
public string EmployeeNumber { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<AuditEntry> AuditEntries { get; set; }
}
AuditEntryクラス:
public class AuditEntry
{
public int Id { get; set; }
public int OldValue { get; set; }
public int NewValue { get; set; }
public DateTime AuditDate { get; set; }
public string EmployeeNumber { get; set; }
public int GrantApplicationIs { get; set; }
public GrantApplication GrantApplication { get; set; }
}
これは、私は新しい補助金への新しい監査エントリを追加する方法ですアプリケーション:
public void Insert(GrantApplication grantApplication)
{
DateTime currentDateTime = DateTime.Now;
string submitterEmployeeNumber = "123456";
grantApplication.SignatureDate = currentDateTime;
grantApplication.SubmitterEmployeeNumber = submitterEmployeeNumber;
// Add audit entry
grantApplication.AuditEntries = new List<AuditEntry>();
grantApplication.AuditEntries.Add(new AuditEntry
{
NewValue = grantApplication.GrantApplicationStateId,
AuditDate = currentDateTime,
EmployeeNumber = submitterEmployeeNumber
});
// Insert the new grant application
grantApplicationRepository.Insert(grantApplication);
}
UPDATE:
私のテーブル構造のようになります。
GrantApplications
テーブル:
Id int
EmployeeNumber varchar(6)
Title varchar(10)
FirstName varchar(50)
LastName varchar(50)
AuditEntries
がテーブル:
Id int
GrantApplicationId int
OldValue int
NewValue int
AuditDate datetime
EmployeeNumber varchar(6)
私は何見当がつかないGrantApplicationIs
GrantApplication_Id
であり、なぜ列名であるかを示します。何から?
代わりに、この 'GrantApplicationIs'を' GrantApplicationId'にしてはいけませんか? –
私はGrantApplicationIsが何であるか、どこから来ているのか分かりません。私はGrantApplicationテーブルにこの名前の列を持っていません。 –
@Brendanはあなたのテーブルにはありません。 'AuditEntry'クラスには' GrantApplicationIs'というプロパティがあります。 – Eranga