Я пытаюсь сделать что-то, что должно быть «простым», я хочу вытащить часть данных из моей базы данных, но я хочу только вытащите описание (таблица базы данных для этого элемента имеет имя, фамилию, адрес и т. д.).Entity framework выбирает существующий элемент и только оттягивает одно из его полей для обновления
Поэтому, когда я вызываю свой вызов базы данных, я хочу просто получить описание, а затем обновить его, я не хочу брать что-либо еще, поскольку это будет стоить сети и может вызвать отставание, если оно использует несколько раз за несколько секунд ,
Вот мой код, который я пытаюсь исправить
using (var context = new storemanagerEntities())
{
var stock = context.stocks.Where(x => x.id == model.Id).Select(
x => new stock()
{
description = x.description
}).FirstOrDefault();
stock.description = model.Description;
context.SaveChanges();
}
Ошибки Я ловя это
**The entity or complex type 'StoreManagerModel.stock' cannot be constructed in a LINQ to Entities query.**
Я уверен, что с помощью «нового» ключевого слова, вероятно, проблема , но есть ли у кого-нибудь идеи о том, как это решить?
--update
Этот код работает, но это не похоже на самом деле обновить базу данных
public void UpdateDescription(StockItemDescriptionModel model)
{
using (var context = new storemanagerEntities())
{
var stock = context.stocks.Where(x => x.id == model.Id)
.AsEnumerable()
.Select(
x => new stock
{
description = x.description
}).FirstOrDefault();
stock.description = model.Description;
context.SaveChanges();
}
}
На данный момент это, казалось бы, это, возможно, мой водитель MySQl который 6390, кажется, для работы в другой версии, я попробовал, жаль, что я еще не нашел ответ
Вышеупомянутое отставание действительно будет примечательным? Большая часть отставания, связанного с базами данных, связана с подключением к ней, а не с выполнением запроса или получением результатов. –
Ну лаг всегда является проблемой, но мне все же хотелось бы получить ответ, поскольку я чувствую, что мой код будет намного опрятным – Canvas
Что касается ваша ошибка, вы пытаетесь создать не отслеживаемый тип внутри (для всех целей и задач) SQL-запроса. Вам нужно превратить Linq-To-SQL в Linq-To-Entities с помощью '.ToList()' после вашего '.Where' call –