でこれができるはずです.Element()
。何かのようなもの:
HasMany(x => x.SportsCompeted)
.KeyColumn("CompetitorId")
.Element("SportID") // You can define element type as second parameter
.Table("results");
詳細:リスト<string>の
NHibernate
Fluent NHIbernate自動マッピングを使用した文字列のマッピングコレクション?
編集:
Result
代わりにあなたとSport
エンティティがあるとしましょう:
public class Sport
{
public virtual int SportId { get; set; }
// Other properties
}
public class Result : Entity
{
public virtual ResultId { get; set; }
public virtual Competitor Competitor { get; set; }
public virtual Sport Sport { get; set; }
// Other properties
}
public class Competitor
{
public virtual int CompetitorId { get; set; }
public virtual IList<Result> Results { get; set; }
// Other properties
}
これHasMany
で、次のようになります。
// For this, you would need to have Result and Sport classes mapped
// This property isn't necessary for your Sports Competed query
HasMany(x => x.Results)
.KeyColumn("CompetitorId")
.Table("results");
次に、ieを使用できます。必要な結果を得るためのLinq:
var sports = session.Query<Result>()
.Where(x => x.Competitor.CompetitorId = competitorId)
.Select(x => x.Sport) // Or .Select(x => x.Sport.SportId)
.Distinct();