次のDbスクリプトを確認してください。
CREATE TABLE tlogdata
(
logentryid INT NOT NULL, -- PK
[key] NVARCHAR(25) NOT NULL, -- PK
value NVARCHAR(MAX) NOT NULL
)
CREATE TABLE tlogentry
(
logentryid INT IDENTITY(1,1) NOT NULL, -- PK
[message] NVARCHAR(4000) NOT NULL
)
tlogentrydataには、複合PK=>logentryidとキーがあります。logentryidはtlogentry.logentryid列を参照します
今私がしたいのは、次のようなモデルを作成することです。
public class LogEntryData
{
public string Key { get; set; }
public string Value { get; set; }
}
public class LogEntry
{
public int Id { get; set; }
public string Message { get; set; }
public List<LogEntryData> Data { get; set; }
}
ご覧のとおり、LogEntryDataにはプロパティとして「LogEntryID」が含まれていません。だから私の質問は、どうすれば(流暢なAPIを使用して)これらの2つのクラスをテーブルにマッピングできますか?列の1つをパブリックプロパティとして公開せずにLogEntryDataに複合PKがあることをEFに伝えることさえ可能かどうかはわかりません(この場合、LogEntryIdはLogEntryDataクラスには存在しませんが、logentryid列としてtlogentrydataテーブルに存在します)
前もって感謝します!