Указанное недопустимое сопоставление элементов. Ошибка в ADO.net Entity Framework при добавлении нового столбца в базу данных? - PullRequest
3 голосов
/ 29 сентября 2011

Я очень новичок в ADo.net entity Framework и получаю следующую ошибку

 The type 'Edm.Byte' of the member 'IsActive' in the conceptual side type 
 NopSolutions.NopCommerce.BusinessLogic.Data.Language' does not match with the type 
 System.Boolean' of the member 'IsActive' on the object side type   NopSolutions.NopCommerce.BusinessLogic.Directory.Language'.

, насколько я понимаю, что есть некоторые пропущенные связи с типом данных EDM и объект

, но я сделал столбец в таблице базы данных, который является битовым типом, и в langauge.cs я объявляю свойство

   public bool IsActive { get; set; }

любые детали, необходимые я могу опубликовать здесь

РЕДАКТИРОВАТЬ:

, как я Google, я нашел этот вопрос на stackoverflow

et-model-property-to-boolean-in-entity-framework , который изменяет байт на Boolean для отображения tinyint

, но в моем случае у меня в базе данных тоже бит.

1 Ответ

9 голосов
/ 29 сентября 2011

Предполагая, что у вас есть .edmx-файл, который вы можете изменить. Откройте его в XML-редакторе и найдите элемент <edmx:ConceptualModels>. Это должно содержать определение ваших сущностей, ищите <EntityType Name="Language"> -элемент, который должен объявить что-то вроде этого:

<Property Name="IsActive" Type="Byte" Nullable="false" />

Измените атрибут Type на Boolean.

Я почти уверен, что вы также можете сделать это в конструкторе, но если у вас нет прямого доступа к .edmx, дайте мне знать, и мы что-нибудь придумаем.

...