我有这两张桌子
public partial class Items
{
public Items()
{
this.Variables = new HashSet<Variable>();
}
public int Id { get; set; }
public string name {get; set};
//other columns
public virtual ICollection<Variable> Variables { get; set; }
}
}
和
public partial class Variable
{
public Variable()
{
this.Items= new HashSet<Items>();
}
public int Id { get; set; }
public string name {get; set};
//other stuff
public virtual ICollection<Items> Items{ get; set; }
}
}
tr 这些都是从数据库第一个实体框架自动创建的(从 edmx 文件中的数据库更新模型)。我需要能够更新从创建的联结表
public virtual ICollection<Template> Templates { get; set; }
public virtual ICollection<Variable> Variables { get; set; }
联结表只有两列 TemplateId 和 VariableID,它们都是各自表的 FK。它们需要匹配 Item 和 Variable 的名称。目前我能够完成一些(我没有从项目表中获得 ID):
foreach (var tempItem in db.Items)
{
var item = db.Variables.FirstOrDefault(x => x.Name tempItem.Name);
db.Variables.Add(item);
}
db.SaveChanges();
编辑:我想要完成的 sql 是:
select Top 1000 V.ID, I.ID
FROM [PageflexWeb].[dbo].[Variables] as V, [PageflexWeb].[dbo].[Items] as I
Where V.Name = I.Name
哪个工作正常,但我需要一种方法将其保存到联结表 dbo.ItemVariables
任何帮助将不胜感激。
我已经阅读了有关 msdn 和 stack 的所有文档,但我无法找到我正在寻找的答案。