Linq to sql 为LinqToSql创建自己的自定义DataAttribute时出现问题
我手工构建LINQ模型,因为我想(了解真实发生的事情) 我正在阅读一本关于将标准类转换为Linq模型的非常轻量级的教程 对于我的示例应用程序,我创建了一些如下所示的模型: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
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提供程序?)事情变得复杂了。我会让这件事搁置一两天。