У меня такая ситуация:
Приложение MVC3, с EF4.1 Code-First и SQLCE.
Объекты:
Для каждого элемента Content будет N Перевод, связанный с GUID. Таким образом, класс Content не имеет никакого отношения к переводу, но каждый перевод имеет свойство Content .
Класс Content имеет перевод NotMapped только для отправки одной модели в представление.
Когда я заполняю базу данных, я могу успешно заполнить обе таблицы, используя GUID в качестве параметра.
Но как я могу загрузить перевод из представления? Я новичок в таких вещах, как отложенная загрузка, навигационные свойства и т. Д.
Продолжая, я могу заполнить правильно, но не выяснил, как загрузить оба в одном представлении. Как загрузить перевод на основе параметра "locale".
Может кто-нибудь помочь мне в этом?
Спасибо.
ОБНОВЛЕНИЕ: КОД
Класс содержимого
public class Content
{
#region [ Properties ]
/// <summary>
/// The GUID
/// </summary>
[Key]
public string GUID { get; set; }
public string Type { get; set; }
[NotMapped]
public Translation Translation { get; set; }
#endregion
}
Класс перевода
public class Translation
{
[Key]
public int ID { get; set; }
public Content Content { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
Код населения
for (int i = start; i < (start + 2); i++)
{
Content c = new Content(1234);
c.Type = Type.ToString();
using (ContentContext db = new ContentContext())
{
if (!db.Contents.Any(o => o.GUID == c.GUID))
{
c.PopulateInfo(Locale);
db.Contents.Add(c);
c.RegionalInfo.Name = "test";
db.Translations.Add(c.Translation);
db.SaveChanges();
}
else
{
c = db.Contents.Single(o => o.GUID == c.GUID);
}
}
// local list to load on the controller
Contents.Add(c);
}