我的实体映射实体有一些原因没有主键:NHibernate的无主键
public partial class VehicleLocation
{
public virtual string UserCode { get; set; }
public virtual string DateTime { get; set; }
public virtual string Device { get; set; }
public virtual string Gps { get; set; }
public virtual string GpsDateTime { get; set; }
public virtual double Speed { get; set; }
}
映射:
class VehicleLoactionMap : ClassMap<VehicleLocation>
{
public VehicleLoactionMap()
{
Table("VEHICLE_LOCATION");
LazyLoad();
Map(x => x.UserCode).Column("USER_CODE");
Map(x => x.DateTime).Column("DATE_TIME");
Map(x => x.Device).Column("DEVICE");
Map(x => x.Gps).Column("GPS");
Map(x => x.GpsDateTime).Column("GPS_DATE_TIME");
Map(x => x.Speed).Column("SPEED");
}
}
我得到这个错误:
The entity 'VehicleLocation' doesn't have an Id mapped...
如何映射我的实体而不使用主键?
没有PK的原因是什么?如果仅仅是传统数据库模式的情况下,你不能改变,那么你必须看看复合键(尽管这会让事情变得棘手)。但除此之外,即使它只是代理键,我也看不到没有PK的好理由。把一个,你的NHibernate问题消失。 – 2013-04-04 10:08:40
使用我无法更改的预定义数据库模式。我无法添加/删除键/字段..在我的数据库是这个表没有一个PK,我试图映射它,你可以在我的示例代码中看到。 – Stacked 2013-04-04 10:37:26
唉,这是一个令人失望:-(我有以下建议,那么复合键的方法去。 – 2013-04-04 11:08:53