Каков наилучший способ назначения внешнего ключа при использовании структуры сущностей и LINQ для сущностей? - PullRequest
1 голос
/ 19 мая 2010

Мне нужно знать лучшие практики создания объекта сущности и назначения внешнего ключа. Вот мой сценарий. У меня есть таблица Product с pid, name, unit_price и т. Д. У меня также есть таблица Rating с pid (ключом foregin), рейтингом, голосами и т. Д. В настоящее время я делаю следующее для создания объекта рейтинга:

var prod = entities.Product.First(p => p.product_id == pid);

        prod.Rating.Load();
        if (prod.Rating != null)
        {
            log.Info("Rating already exists!");
            // set values and Calcuate the score
        }
        else
        {
            log.Info("New Rating!!!");
            Rating rating = new Rating();
            // set values and do inital calculation
            prod.Rating = rating;
        } entities.SaveChanges();

Несмотря на то, что это работает нормально, я хотел бы узнать, как лучше выполнять такие задания.

1 Ответ

1 голос
/ 19 мая 2010

Всякий раз, когда вы всегда собираетесь загружать сущность, просто выполните одну поездку туда и обратно и включите ее в запрос, который будет генерироваться EF.

    Product prod = entities
            .Product.Include("Rating")
            .First(p => p.product_id == pid);


    if (prod.Rating != null)
    {
        log.Info("Rating already exists!");
        // set values and Calcuate the score
    }
    else
    {
        log.Info("New Rating!!!");
        Rating rating = new Rating();
        // set values and do inital calculation
        prod.Rating = rating;
    } 
    entities.SaveChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...