У меня есть отношения многие ко многим следующим образом:
Table1
ID (int) | Name (string)
Table2
ID (int) | Data (string)
Table1_2
Table1ID (int) | Table2ID (int)
Я хотел бы сделать следующее в Entity Framework:
Учитывая List<Table1>
, посмотрите, совпадают ли какие-либо записи в Таблице 1; если это так, обратитесь к ним; если нет, добавьте их и сделайте ссылку на них. Например, что-то вроде:
public void InsertOrReferenceExisting(string data, List<Table1> table1References)
{
var myEntities = new MyEntities();
var table1Entities = new EntityCollection<Table1>();
foreach(var row in table1References)
{
var existing = myEntities.Table1.Where(x => x.Name == row.Name);
if (existing.Count() > 0)
{
// reference existing row in Table1
}
else
{
// add new row to Table1
}
}
myEntities.Table2.AddObject(new Table2
{
Data = data,
Table1s = table1Entities
});
myEntities.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
}
Я на правильном пути?