Как сохранить dataannotation в MVC данных первым подходом - PullRequest
0 голосов
/ 11 ноября 2018

Я использую базу данных MVC в первую очередь и создал один файл .edmx.

Теперь все мои таблицы доступны в этом файле model.tt. Я также определил некоторые аннотации данных в этих полях таблицы.

Но то, что я заметил, что когда бы я ни пытался обновить эту модель, значение dataanotation будет равно нулю.

Любые мысли, пожалуйста.

1 Ответ

0 голосов
/ 11 ноября 2018

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

Это то, что я нашел, чтобы помочь мне

http://www.ozkary.com/2015/01/add-data-annotations-to-entity.html

также это

https://docs.microsoft.com/en-us/previous-versions/aspnet/ee256141(v=vs.98)

Я не претендую на то, что понимаю это, но вот руководство к многоточию.

Пример сгенерированного класса EF выглядит следующим образом:

public partial class Employee
{
    public int Emp_ID { get; set; }
    public string Emp_Name { get; set; }
    public Nullable<System.DateTime> Commencement_Date { get; set; }
}

Определенно не редактируйте это.

Вместо этого вы создаете отдельный файл класса (я назвал мой metadata.cs и поместил его в папку Models) со следующим:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace MyProject.Models
{
    [MetadataType(typeof(EmployeeMD))]  // new name for your metadata class
    public partial class Employee    // same name as your EF generated class
    {
    // Nothing in here
    }

    internal sealed class EmployeeMD // your metadata class
    {
    [Required]
    [StringLength(50, MinimumLength = 2, ErrorMessage = "Name required")]
    public string Emp_Name { get; set; }


    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    public Nullable<System.DateTime> Commencement_Date { get; set; }
    }
}
...