Проблемы с созданием моего собственного пользовательского атрибута данных для LinqToSql - PullRequest
0 голосов
/ 31 июля 2010

Я строю модели 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 не получает мой атрибут (даже если он наследуется от того же DataAttribute, что и Column. Есть ли шаг, который я пропускаю, или я должен отказаться от этой идеи?

1 Ответ

1 голос
/ 31 июля 2010

Попробуйте наследовать от ColumnAttribute ...

public class ColumnPrimaryKeyAttribute : ColumnAttribute

Edit:

Неважно, я вижу, что атрибут ColumnAttribute запечатан. Вам может не повезти, так как я предполагаю, что LINQ выполняет System.Attribute.GetCustomAttributes (typeof (ColumnAttribute));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...