为Linq To Sql创建自己的自定义数据属性时出现问题

时间:2010-07-31 04:32:45

标签: linq-to-sql

我正在手工构建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。是否有一个我缺少的步骤,或者我应该放弃这个想法?

1 个答案:

答案 0 :(得分:1)

尝试继承ColumnAttribute ...

public class ColumnPrimaryKeyAttribute : ColumnAttribute

修改

没关系,我看到ColumnAttribute是密封的。你可能运气不好,因为我的猜测是LINQ正在做一个System.Attribute.GetCustomAttributes(typeof(ColumnAttribute));