C # ADO.NET вставка новых строк со значениями по умолчанию - PullRequest
2 голосов
/ 12 февраля 2011

У меня есть эта таблица в моей базе данных

Таблица Project
ProjectId (int), ProjectName (varchar(50)), ProjectCreationDate(datetime2(7))

ProjectId - это идентификатор
ProjectName недопустимо без значения по умолчанию
ProjectCreationDate имеет привязку по умолчанию (sysdatetime ())

Я создаю ADO.NET EDM и пытаюсь вставить в таблицу


using (ProjectEntities context = new ProjectEntities()){
    Project p = Project{
        ProjectName = "ADO"
    };

    context.Projects.AddObject(p);
    context.SaveChanges();
}

Проблема в том, что столбец ProjectCreationDate заполнен 0001-01-01 00:00:00.0000000 в то время как я ожидал, что текущее время будет заполнено самой базой данных.

В моей базе данных есть другие таблицы с привязкой значений по умолчанию, и значение будет изменено позже.Поэтому настройка StoreGeneratedPattern = "computed" не является решением, которое я ищу.

Есть идеи?

Ответы [ 4 ]

1 голос
/ 12 февраля 2011

Сэр LukLed является правильным или если вы хотите добавить значение по умолчанию или привязку в вашей таблице.

right click your table name(Table Project)
, choose Design
,Click on your Column Name(ProjectCreationDate) that you want to create default value
On Column Properties, click on Default value or binding then add input 
getdate().

Он будет заполнять ProjectCreationDate каждый раз, когда вы будете вставлять данные.*

1 голос
/ 23 февраля 2012

Если вы всегда хотите, чтобы значение было установлено с помощью sysdatetime (), тогда вы можете сделать «Setter» закрытым в модели объекта.Модель не будет пытаться заполнить поле, и значение по умолчанию, предоставленное базой данных, будет заполнено в таблице.

1 голос
/ 12 февраля 2011

Это, вероятно, не то, что вы хотели бы услышать, но одно из решений - определить значения по умолчанию в конструкторе:

public partial class Project
{
    public Project()
    {
        ProjectCreationDate = DateTime.Now;
    }
}
0 голосов
/ 13 марта 2012

StoreGeneratedPattern = Identity или Computed делает свое дело.

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