0
同一類的兩個表我有這個類:如何映射非主鍵
public class Account
{
public virtual int Id { get; set; }
public virtual decimal Balance { get; set; }
public virtual int IdExternalAccount { get; set; }
}
代表我的分貝於此項目表格帳戶。
問題是我需要將屬性Balance映射到引用名爲V_DEBITACCOUNT的其他表的特定屬性。
CREATE TABLE V_DEBITACCOUNT (
IDACCOUNT NUMERIC(19,0) NOT NULL PRIMARY KEY,
BALANCE NUMERIC(18,4) NULL
)
表V_DEBITACCOUNT上的字段IDACCOUNT引用Account中的字段IdExternalAccount。
我已經使這個映射部分工作。
Table("WTBR_CVW.ACCOUNT");
Id(x => x.Id, m =>
{
m.Generator(Generators.Sequence, p => p.Params(new { sequence = "WTBR_CVW.SQACCOUNT" }));
m.Column("IDACCOUNT");
});
Property(
x => x.IdExternalAccount,
m => m.Column("IDEXTERNALACCOUNT"));
Join("WTBR_CVW.ACCOUNT",
m =>
{
m.Table("WTBR_CVW.V_DEBITACCOUNT");
m.Optional(true);
m.Key(x =>
{
x.PropertyRef(pr => pr.IdExternalAccount);
x.Column("IDACCOUNT");
});
m.Property<decimal>(x => x.Balance, map =>
{
map.Column("AVAILABLEBALANCE");
});
m.Property<System.DateTime>(x => x.ReferenceDate, map =>
{
map.Column("LASTUPDATETIME");
});
});
問題是PropertyRef不起作用。連接正在考慮在Account的PrimeryKey中定義的Id,並忽略指定的Id。
我做錯了什麼?
我建議使用.hmb.xml部分映射它...以確保該概念正在工作(xml已被證明,如果這不起作用,沒有其他方式)。如果JOIN將使用xml而不是代碼 - 請使用它。其他選擇是一對一地進行 –