我正在手工构建LINQ模型,因为我想(了解发生了什么)。
有一个非常轻量级的教程,关于将标准类转换为Linq模型我正在阅读Here。
对于我的示例应用程序,我创建了一些看起来像这样的模型:
public class LoginModel
{
[Column(IsPrimaryKey=true,
DbType="UniqueIdentifier NOT NULL",
CanBeNull=false)]
public Guid LoginID { get; set; }
// .. and more question useless properties...
}
我肯定看到主键的模式导致我创建......
[AttributeUsage(AttributeTargets.Property
| AttributeTargets.Field,
AllowMultiple = false)]
public sealed class ColumnPrimaryKeyAttribute : DataAttribute
{
public ColumnPrimaryKeyAttribute()
{
CanBeNull = false;
IsPrimaryKey = true;
DbType = "UniqueIdentifier NOT NULL";
}
// etc, etc...
}
所以当我使用我的新属性时,LINQ没有提取我的属性(即使它继承了与DataAttribute
相同的Column
。是否有一个我缺少的步骤,或者我应该放弃这个想法?
答案 0 :(得分:1)
尝试继承ColumnAttribute ...
public class ColumnPrimaryKeyAttribute : ColumnAttribute
修改强>
没关系,我看到ColumnAttribute是密封的。你可能运气不好,因为我的猜测是LINQ正在做一个System.Attribute.GetCustomAttributes(typeof(ColumnAttribute));