Я пытаюсь использовать аннотации данных для проверки моделей Entity Framework с использованием частичных классов.
В этой статье (MSDN) мне сказали, что частичный класс должен находиться в том же пространстве имен, что и модель данных. Моя модель данных находится в EntityFrameworkDataProvider, поэтому мой частичный класс, который находится в MyApp.Backend.Models, выглядит следующим образом:
using System.ComponentModel.DataAnnotations;
namespace EntityFrameworkDataProvider
{
[MetadataType(typeof(ItemMetaData))]
public partial class Item { }
public class ItemMetaData
{
[ScaffoldColumn(false)]
public object CreateDate { get; set; }
[Required]
public string DisplayName { get; set; }
[Required]
public string Description { get; set; }
}
}
Я проверяю модель в моем классе контроллера следующим образом:
[HttpPost]
public ViewResult Edit(Item item)
{
if (!TryUpdateModel(item))
{
return View(item);
}
return View("Details", item);
}
Компилируется без ошибок. Однако при попытке отредактировать элемент я получаю эту ошибку:
Сообщение об ошибке компилятора: CS0433: тип 'EntityFrameworkDataProvider.Item' существует как в 'long-path.DLL', так и 'long-path.DLL'
Полагаю, класс Item компилируется дважды или что-то в этом роде. Как предотвратить эту ошибку?