2014-01-28 6 views
0

Я использую MS Sql, база данных имеет 30 просмотров; Я могу импортировать все кроме этого:Entity Framework 6, Database First, MVC5 import view

SELECT  ClinicId, Cold, COUNT(Cold) AS Patients, CEILING(CAST(COUNT(Cold) AS decimal)/(SELECT  COUNT(*) AS Expr1 
     FROM   dbo.vw_Patients AS vw 
     WHERE  (ClinicId = dbo.vw_patients.ClinicId)) * 100) AS Percentage 
FROM   dbo.vw_Patients 
WHERE  (ClinicId IS NOT NULL) 
GROUP BY Cold, ClinicId 

Любая идея, почему я не могу ее импортировать; он работает с linq-to-sql.

+0

Возможно, потому что нет столбца с недействительными значениями, а EF не может определить ключ? Откройте ваш edmx-файл с помощью редактора Xml, и вы сможете найти это представление в комментариях вместе с подробностями о том, что пошло не так. – Pawel

+0

Вы правы Pawel, ошибка: не имеет определяемого первичного ключа и не может быть выведен допустимый первичный ключ. Попробуем выяснить, как это исправить. Огромное спасибо. – hncl

+0

Добавьте столбец, который можно использовать в качестве ключа, или - если у вас уже есть столбцы, которые вы знаете, которые на самом деле никогда не имеют нулевых значений и могут использоваться для идентификации строки (т. Е. Без дубликатов), измените ваш edmx вручную, изменив значение nulloid для этого столбца и сделать их ключами. – Pawel

ответ

0

Это происходит потому, что в ваших представлениях нет столбца с недействительными значениями, и, как следствие, конструктор EF не может вызывать ключевые столбцы. Вам может понадобиться добавить столбец, который вы использовали бы для определения строк, или, если у вас уже есть столбцы, которые, как вы знаете, на самом деле никогда не могут иметь нулевые значения и могут использоваться для идентификации строки (т. Е. Никакие две строки не будут иметь такую ​​же комбинацию значения), измените свой edmx вручную, изменив значение nullability для этих столбцов и сделав их ключами

В общем случае в таких случаях вы можете открыть файл edmx с помощью редактора Xml и вы сможете найти элемент, который был исключен (написано как комментарий) вместе с подробностями о том, почему он был исключен.

+0

Большое вам спасибо. – hncl

Смежные вопросы