Использование значений базы данных по умолчанию с использованием Linq to SQL - PullRequest
0 голосов
/ 12 мая 2010

Я использую динамические данные с linq to SQL и SQL Server 2008.

У меня есть столбец GUID, который получает его значение из значения по умолчанию с помощью newguid (). Когда я устанавливаю IsDbGenerated в true в дизайнере, это работает как шарм.

Но когда я обновляю таблицу, это свойство снова возвращается в false. Поэтому я добавил это к метаданным. По какой-то причине это не получение, "00000000-0000-0000-0000-000000000000" вставляется в базу данных Отображаемое имя и изменение только для чтения.

Чего мне не хватает?

[MetadataType (TypeOf (CMS_Data_HistoryMetadata))] открытый частичный класс CMS_Data_History {

}

[TableName("Content")]
public class CMS_Data_HistoryMetadata
{
    [DisplayName("Pagina Title")]
    public object pageTitleBar { get; set; }


    [ReadOnly(true)]
    [DisplayName("Versie")]
    public object version_date { get; set; }

    [ColumnAttribute(IsDbGenerated = true)]       
    public object entity_id;

}

1 Ответ

0 голосов
/ 12 мая 2010

Я решил проблему, расширив класс частичного обновления en en и проверив, заполнен ли guid

частичная пустота InsertCMS_Data_History (CMS_Data_History пример) {

        if(instance.entity_id == Guid.Empty)
        {
            instance.entity_id = Guid.NewGuid();
        }
        this.ExecuteDynamicInsert(instance);

    }

    partial void UpdateCMS_Data_History(CMS_Data_History

экземпляр) { if (instance.version_date == DateTime.MinValue) { instance.version_date = DateTime.Now; } this.ExecuteDynamicUpdate (экземпляр); }

...