Linq 2 Sql вставить без отношения - PullRequest
1 голос
/ 17 мая 2011

У меня есть 2 таблицы.Например: один из них предназначен для хранения пользователей, а другой - для хранения заказов.Таблица заказов, содержащая UserId в качестве внешнего ключа.Я использую Linq 2 Sql для операций доступа к данным.Я хочу вставить Заказ, не вставляя строку Пользователь, если пользователь уже существует в базе данных.

Как это сделать?

Заранее спасибо,

Редактировать: Вот код, с которым у меня проблемы:

try
{
    context.SocialEntities.InsertOnSubmit(entity);
    context.SubmitChanges();
}
catch (Exception ex)
{
    if (ex.Message.Contains("UserUniqueness"))
    {                     
        User user = context.Users.Where(u => u.SourceUserID == entity.User.SourceUserID).FirstOrDefault();
        if (user != null)
        {
            user.SocialEntities.Add(entity);
            context.SubmitChanges();
        }
    }
}

UserUniquenessограничение уникального ключа, определенное в таблице User для столбца с именем SocialSourceId.И это не первичный ключ.

1 Ответ

2 голосов
/ 17 мая 2011

Добавьте новый заказ в коллекцию Orders существующего пользователя.

ОБНОВЛЕНИЕ:
Я предлагаю вам выполнить проверку для пользователя, прежде чем пытаться вставить его.Я предполагаю, что пользователь, которого вы пытались каким-то образом добавить, все еще находится в вашем контексте и снова отправляется при следующем вызове SubmitChanges.

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