powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблемы с сохранением сущностей
10 сообщений из 10, страница 1 из 1
Проблемы с сохранением сущностей
    #39000451
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день! изучаю entity взял один открытый простенький магазин за основу
Код: c#
1.
2.
3.
4.
5.
6.
order = context.Orders.Add(order);
                foreach (OrderLine line in order.OrderLines)
                {
                context.Entry(line.Commodity).State = EntityState.Modified;
                }
                context.SaveChanges();


Код: c#
1.
2.
3.
4.
5.
    public class EFDbContext : DbContext
    {
        public DbSet<Commodity> Commodities { get; set; }
        public DbSet<Order> Orders { get; set; }
    }


а вот сам заказ
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
    public class Order
    {
        public int OrderID { get; set; }

        [Required(ErrorMessage = "Пожалуйста введите свое имя")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Вы должны указать хотя бы один адрес доставки")]
        public string Line1 { get; set; }
        public string Line2 { get; set; }
        public string Line3 { get; set; }

        [Required(ErrorMessage = "Пожалуйста укажите город, куда нужно доставить заказ")]
        public string City { get; set; }

        public bool GiftWrap { get; set; }
        public bool Dispatched { get; set; }
        public virtual List<OrderLine> OrderLines { get; set; }
    }

    public class OrderLine
    {
        public int OrderLineID { get; set; }
        public Order Order { get; set; }
        public Commodity Commodity { get; set; }
        public int Quantity { get; set; }
    }
}


Подскажите пожалуйста что тут не так
Если надо могу сам проект выложить

Сведения об исключении: System.Data.SqlClient.SqlException: Invalid column name 'Commodity_CommodityID'.
Invalid column name 'Order_OrderID'.
я так понимаю он не хочет сохранять OrderLines но почему...

_____________________
С уважением, Василий.
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39000675
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherik1,

List замени на ICollection (никаких List в сущностях, на будущее!)
добавь virtual ко всем навигационным свойствам (OrderLine.Commodity, OrderLine.Order)

может и не поможет, но сделать это нужно всё равно.
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39000779
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, добавил не помогло - я не понимаю, как и где он формирует Commodity_CommodityID и Order_OrderID. У меня в бд таких столбцов нет :( ... нет я конечно могу подогнать, он ИМХО при создании line их пытается использовать...
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39001359
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот , почти под 100 просмотров, а ответов нет...
а ответ в том, чтобы явно указать на OrderID и CommodityID...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    public class OrderLine
    {
        public int OrderLineID { get; set; }
        public int OrderID { get; set; }
        [ForeignKey("OrderID")]
        public Order Order { get; set; }
        public int CommodityID { get; set; }
        [ForeignKey("CommodityID")]
        public Commodity Commodity { get; set; }
        public int Quantity { get; set; }
    }


всем спасибо.
ps может кому надо: там много интересных смежных вещей https://msdn.microsoft.com/ru-ru/data/jj591583.aspx
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39001574
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherik1а ответ в том, чтобы явно указать на OrderID и CommodityID...

А ответ в том, что надо соблюдать соглашения EF, или написать свои.

OrderId и CommodityId -- по соглашениям, принятым в EF.
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39002172
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, а где соглашения? нууу и он в том примере не Commodity_CommodityID, Order_OrderID четко указывать ... там единственное что CommodityID, но не Commodity_CommodityID... странно...
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39002177
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"ID" и "Id" - найди десять отличий...
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39002213
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherik1,

я с такой проблемой не сталкивался, ни разу не приходилось вручную указывать [ForeignKey], я люблю автоматизацию.
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39003091
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, вопрос был про Commodity_CommodityID и CommodityID - вот сам и ищи.
...
Рейтинг: 0 / 0
Проблемы с сохранением сущностей
    #39015130
cherik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cherik1, ой нет там все верно - это я не правильно поглядел
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблемы с сохранением сущностей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]