Обязательный столбец 'id' не присутствовал в результатах операции `FromSql` в EFcore - PullRequest
1 голос
/ 08 мая 2019

У меня есть большая проблема с FromSql, вот и все:

У меня есть такая модель:

public partial class  model
{
    public string name
}

Я хочу получить некоторый результат от моей процедуры в базе данных (sql serever).когда я выполняю приведенный ниже код

var sql = "EXECUTE [myprocedure] @param1 ";
SqlParameter sqlParameter = new SqlParameter
{
     ParameterName = "param1",
     DbType = DbType.Int32,
     Value = 10;
}
var result = db.model.FromSql(sql,SqlParameter);

, он показывает исключение, подобное этому: The entity type 'model' requires a primary key to be defined. Поэтому я добавляю первичный ключ к моей модели:

public partial class  model
{
    [key]
    public int ID {set;get;}

    public string name
}

Но в это время он показывает это выполнение: The required column 'ID' was not present in the results of a 'FromSql' operation.

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

Может ли кто-нибудь мне помочь?!

1 Ответ

3 голосов
/ 08 мая 2019

Если вы используете Entity Framework Core 2.x, обратите внимание на типы запросов (https://docs.microsoft.com/en-us/ef/core/modeling/query-types). Таблицам (типам сущностей) всегда нужен идентификатор, типы запросов не нужны.

С типами запросовВы можете опустить идентификатор. В противном случае вы должны убедиться, что ваша хранимая процедура также возвращает идентификатор, так как тип таблиц / сущностей всегда нужен.

Начиная с EF Core 3.0 вместо запроса используется .HasNoKey ()типы для определения сущностей без идентификатора (https://docs.microsoft.com/de-de/ef/core/what-is-new/ef-core-3.0/breaking-changes#query-types-are-consolidated-with-entity-types).

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