Я разработал небольшой анализатор объектов (для файлов SQL, который позволяет легко находить список всех таблиц, используемых в процедуре), и у меня есть следующая модель:
3 таблицы:
- Объект (ID, Имя, LastWriteTime)
- Таблица (ID, имя)
- ObjectTable (ObjectID, TableID)
У меня есть 3 соответствующих класса:
Объект - Список проверенных файлов:
[Table(Name = "object")]
public class SourceFile : IEquatable<SourceFile>
{
public SourceFile()
{ }
[Column(Name = "id", IsDbGenerated = true)]
public Guid ID
{
get;
set;
}
[Column(Name = "lastwritetime")]
public DateTime LastWriteTimeUtc
{
get;
set;
}
[Column(Name = "name", IsPrimaryKey = true)]
public String Name
{
get;
set;
}
public bool Equals(SourceFile other)
{
return Name == other.Name;
}
public override int GetHashCode()
{
return Name.GetHashCode();
}
}
Таблица - Список всех таблиц в БД:
[Table(Name = "table")]
public class SourceTable : IEquatable<SourceTable>
{
public SourceTable()
{ }
[Column(Name = "id", IsDbGenerated = true)]
public Guid ID
{
get;
set;
}
[Column(Name = "name", IsPrimaryKey = true)]
public String Name
{
get;
set;
}
public bool Equals(SourceTable other)
{
return Name == other.Name;
}
public override int GetHashCode()
{
return Name.GetHashCode();
}
}
ObjectTable - Для каждого объекта используется список таблиц:
[Table(Name = "object_table")]
public class SourceFileTable
{
[Column(Name = "object_id", IsPrimaryKey = true)]
public Guid ObjectID
{
get; set;
}
[Column(Name = "table_id", IsPrimaryKey = true)]
public Guid TableID
{
get; set;
}
}
Как видите, ID объекта и таблицы DBGenerated, поэтому мой вопрос: как я могу добавить значения в ObjectTable, используя сгенерированные идентификаторы? Там только один раз вставляется в БД, а не раньше.
Есть подсказка?