Я пытаюсь использовать Fluent NHibernate с моим проектом, в настоящее время я могу получить данные из базы данных, когда я на сервере приложений, данные включают в себя их PK, но когда я возвращаю эти данные (в виде списка) клиенту все его ПК свободен.
Как я могу исправить эту проблему?
Обновление
Мой класс POCO ниже: PKs CountryCd и CityCd
public class coCity
{
public virtual string CountryCd { get; private set; }
public virtual string CityCd { get; private set; }
public virtual string CityNameTH { get; set; }
public virtual string CityNameEN { get; set; }
public virtual int DeliveryLeadTime { get; set; }
public virtual string CreateBy { get; set; }
public virtual DateTime CreateDate { get; set; }
public virtual string UpdateBy { get; set; }
public virtual DateTime UpdateDate { get; set; }
public override bool Equals(object obj)
{
return this.GetHashCode().Equals(obj.GetHashCode());
}
public override int GetHashCode()
{
return (this.CountryCd + this.CityCd).GetHashCode();
}
}
Класс картирования:
public class coCityMap : ClassMap<coCity>
{
public coCityMap()
{
Table("coCity"); // this is optional
CompositeId()
.KeyProperty(x => x.CountryCd)
.KeyProperty(x => x.CityCd);
Map(x => x.CityNameTH);
Map(x => x.CityNameEN);
Map(x => x.DeliveryLeadTime);
Map(x => x.CreateBy);
Map(x => x.CreateDate);
Map(x => x.UpdateBy);
Map(x => x.UpdateDate);
}
}
Исходный код для получения данных на сервере приложений
public List<coCity> GetTest()
{
List<coCity> result = new List<coCity>();
var sessionFactory = CreateSessionFactory();
using (var session = sessionFactory.OpenSession())
{
result = (List<coCity>)session.CreateCriteria(typeof(coCity)).List<coCity>();
}
return result;
}
Когда он все еще на сервере приложений, данные извлекаются правильно, как показано на рисунке ниже.
альтернативный текст http://img138.imageshack.us/img138/1071/serverside.png
Однако, когда эти данные передаются обратно на сторону клиента, все его PK теряются, как показано ниже.
альтернативный текст http://img203.imageshack.us/img203/1664/clientside.png