У меня есть две таблицы для отслеживания пользовательских сессий на моем сайте. Это грубое упрощение между прочим:
Campaign:
campaignId [int]
campaignKey [varchar(20)]
description [varchar(50)]
Session:
sessionDate [datetime]
sessionGUID [uniqueidentifier]
campaignId [int]
campaignKey [varchar(20)]
Я хочу вставить новую запись в сеанс, используя LINQ:
var s = new Session();
dbContext.Session.InsertOnSubmit(s);
s.sessionDate = DateTime.Now;
s.sessionGUID = Guid.NewGuid();
s.campaignKey = Request.Params["c"];
// dont set s.campaignId here...
dbContext.SubmitChanges();
Обратите внимание, что в данный момент я не устанавливаю campaignId
в этом коде.
Я хочу, чтобы что-то автоматически подключило внешний ключ к таблице «Кампания», и что бы оно ни делало, сначала нужно добавить новую строку в таблицу «Кампания», если переданная кампания имеет никогда раньше не использовался.
Мне нужно принять несколько решений, и я был бы очень признателен за понимание любого из них:
Прежде чем кто-либо спросит, я НЕ знаю кампании заранее, так как некоторые из них будут созданы партнерами.
Самое главное: В первую очередь я ищу наиболее «дружественное» для LINQ решение.