ビューを作成せずに、2 つの非主キー列を持つ 2 つのテーブルを結合する方法はあるのでしょうか? 「Name」と「Year」の列を持つ「Make」というテーブルがあり、「MakeName」と「MakeYear」の列を持つ「Style」という別のテーブルと結合したいと考えています。1 つの「Make」に複数の「Style」を含めることができます。これまでに作成したエンティティは次のとおりです。
public class Make
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Year { get; set; }
public virtual IList<Style> Styles { get; set; }
}
public class Style
{
public virtual int Id { get; set; }
public virtual string MakeName { get; set; }
public virtual string MakeYear { get; set; }
public virtual string Class { get; set; }
public virtual Make Make { get; set; }
}
また、これらは私がこれまでに持っているクラス マップです。
public class MakeMap : ClassMap<Make>
{
public MakeMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Year);
// Bad mapping...
//HasManyToMany(x => x.Styles).Table("Make").AsBag()
.ParentKeyColumn("MakeName")
.ChildKeyColumn("MakeYear").Cascade.All();
Table("Make");
}
}
public class StyleMap : ClassMap<Style>
{
public StyleMap()
{
Id(x => x.Id);
Map(x => x.Class);
Map(x => x.MakeName);
Map(x => x.MakeYear);
// Ends up overwriting the "MakeName" column
References(x => x.Make).Column("MakeName").PropertyRef("Name").
Column("MakeYear").PropertyRef("Year");
Table("Style");
}
}
ありがとう!