这一定是我无法掌握的简单事物。
假设一家企业提供多种服务。一方面,ServiceOffers 作为查找表,BusinessServiceOffers 用于关联。当我添加如下所示的多对一映射时,sqlite 提供程序(在单元测试时)抛出了一个参数超出范围异常,这是可以理解的,这是由于 Property 和 ManyToOne 中的重复引用。
Property(x => x.ServiceOfferingId);
ManyToOne
(
x => x.ServiceOffering,
x =>
{
x.Fetch(FetchKind.Select);
x.Lazy(LazyRelation.Proxy);
x.Column("ServiceOfferingId");
x.ForeignKey("FK_BusinessServiceOffering_ServiceOfferingId");
}
);
删除属性修复了异常问题,但测试一直失败。查看插入的 sql,我看到为 ServiceOfferingId 插入了“null”,而不是分配的 int 值,例如:
INSERT
INTO
BusinessServiceOffering
(BusinessId, IsEnabled, CreatedDate, CreatedByLoginId, ModifiedDate, ModifiedByLoginId, ServiceOfferingId, BusinessServiceOfferingId)
VALUES
(@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7);
@p0 = 200 [Type: Int32 (0)], @p1 = True [Type: Boolean (0)],
@p2 = 2/28/2013 6:11:25 PM [Type: DateTime (0)],
@p3 = 20 [Type: Int32 (0)], @p4 = 2/28/2013 6:11:25 PM [Type: DateTime (0)],
@p5 = 30 [Type: Int32 (0)], @p6 = **NULL** [Type: Int32 (0)], --->
@p7 = 5 [Type: Int32 (0)]
我尝试在“一个”侧添加一个袋子,但似乎没有任何区别。
我错过了什么?请注意,我有与 sql server 的集成测试,无论有没有该属性都可以正常运行。但是,使用 sql server 进行的简单读取测试无法为删除了属性的那些字段返回任何数据。
好像我需要正确映射或者它是一个 sqlite 特质。
请帮忙。