Linq to sql 为LinqToSql创建自己的自定义DataAttribute时出现问题

Linq to sql 为LinqToSql创建自己的自定义DataAttribute时出现问题,linq-to-sql,Linq To Sql,我手工构建LINQ模型,因为我想(了解真实发生的事情) 我正在阅读一本关于将标准类转换为Linq模型的非常轻量级的教程 对于我的示例应用程序,我创建了一些如下所示的模型: public class LoginModel { [Column(IsPrimaryKey=true, DbType="UniqueIdentifier NOT NULL", CanBeNull=false)] public Guid LoginID { g

我手工构建LINQ模型,因为我想(了解真实发生的事情)

我正在阅读一本关于将标准类转换为Linq模型的非常轻量级的教程

对于我的示例应用程序,我创建了一些如下所示的模型:

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没有选择我的属性(即使它继承自与
列相同的
数据属性
。我是否缺少一个步骤,或者我应该放弃这个想法?

尝试从ColumnAttribute继承

public class ColumnPrimaryKeyAttribute : ColumnAttribute
编辑:


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

是的,我也是这么想的。如果有办法重写或替换LINQ方法(我的意思是我可以编写自己的LINQ提供程序?)事情变得复杂了。我会让这件事搁置一两天。