0
我有一个相对简单的域模型上的几个POCO。一个例子是这样的:LinqToDB与SQLite的参考属性为空
[Table("Tag")]
public partial class Tag
{
[PrimaryKey, NotNull ] public string Name { get; set; } // varchar(128)
[Column, Nullable] public string Description { get; set; } // text(2147483647)
[Column, Nullable] public string ParentID { get; set; } // varchar(128)
#region Associations
/// <summary>
/// FK_Tag_0_0
/// </summary>
[Association(ThisKey="ParentID", OtherKey="Name", CanBeNull=true)]
public Tag Parent { get; set; }
/// <summary>
/// FK_TagObjects_0_0_BackReference
/// </summary>
[Association(ThisKey="Name", OtherKey="TagID", CanBeNull=true)]
public List<TagObject> ObjectLinks { get; set; }
/// <summary>
/// FK_TagSynonyms_0_0_BackReference
/// </summary>
[Association(ThisKey="Name", OtherKey="TagID", CanBeNull=true)]
public List<TagSynonym> SynonymLinks { get; set; }
/// <summary>
/// FK_Tag_0_0_BackReference
/// </summary>
[Association(ThisKey="Name", OtherKey="ParentID", CanBeNull=true)]
public List<Tag> Children { get; set; }
#endregion
}
的FKS的名称是怪异,但我反驳说,在像自述的.TT文件中指定MemberName
对于他们建议。
的问题是,当我抢我的标签对象中的一个,所有的关联属性为null - 该ParentID
的相关标签是正确的,它只是似乎并不映射到Parent
或Children
像我期望的属性。
我在这里做错了什么吗?我已经仔细检查过数据库本身。 .tt看起来像这样:
NamespaceName = "MyProg.Models";
GenerateBackReferences = true;
OneToManyAssociationType = "List<{0}>";
LoadSQLiteMetadata(@"C:\my\path", "my.db");
var k = GetFK("Tag", "FK_Tag_0_0");
k.MemberName = "Parent";
k.BackReference.MemberName = "Children";
GenerateModel();
感谢您的回答!然而,我不确定这与我自己的设置有何不同。无论哪种情况,我都决定放弃LinqToDB,但这些信息可能对其他人有用。 :) – robhol 2014-11-14 11:59:14