开发者

nhibernate inner join a table without a property in class

开发者 https://www.devze.com 2023-01-26 06:32 出处:网络
i have the following model: public class FlatMap : ClassMap<Flat> { public FlatMap() { Id(m => m.FlatID).GeneratedBy.Identity();

i have the following model:

public class FlatMap : ClassMap<Flat>
    {
        public FlatMap()
        {
            Id(m => m.FlatID).GeneratedBy.Identity();
            Map(m => m.Name);
            Map(m => m.Notes);
            Map(m => m.Released);
        }

    } 
public class BuildingMap : ClassMap<Building>
{
    public BuildingMap()
    {
        Id(i => i.BuildingID).GeneratedBy.Identity();
        Map(m => m.Name);
        HasMany<Flat>(m => m.Flats).Cascade.All().KeyColumn("BuildingID").Not.LazyLoad();
    }
}

public class开发者_Go百科 ContractMap : ClassMap<Contract>
    {
        public ContractMap()
        {
            Id(m => m.ContractID).GeneratedBy.Identity();
            Map(m => m.Amount);
            Map(m => m.BeginIn);
            Map(m => m.EndIn);
            References(m => m.RentedFlat);
        }
    }

how can i make the following query using fluent nhibernate ?

Select * From Contract 
Inner Join Flat On Contract.RentedFlatID = Flat.ID
Inner Join Building On Building.BuildingID = Flat.BuildingID
Where Building.BuildingID = @p0

especially there no reference from Flat to Building?? and i don't want it to be !

of course the reference i am talking about in order to be able to do something like this

var criteria = session.CreateCriteria<Contract>().CreateCriteria ("RentedFlat").CreateCriteria ("Building"/*there is no such property in Flat class*/);


i solved a problem, but not the way as i think is good. but i will make this as an answer until someone provide me a better solution.

i add a property BuildingID to the Flat class, and modified the mapping class to :

Map(m => m.BuildingID);

now i can do the following query:

   criteria.CreateCriteria("RentedFlat")
           .Add(Restrictions.Eq("BuildingID", selectedBuilding.BuildingID));
0

精彩评论

暂无评论...
验证码 换一张
取 消