我使用实体框架迁移(在自动迁移模式下).一切都很好,但我有一个问题:当我有多对多的关系时,我应该如何播种数据.例如,我有两个模型类:
public class Parcel
{
public int Id { get; set; }
public string Description { get; set; }
public double Weight { get; set; }
public virtual ICollection<BuyingItem> Items { get; set; }
}
public class BuyingItem
{
public int Id { get; set; }
public decimal Price { get; set; }
public virtual ICollection<Parcel> Parcels { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我理解如何为简单数据(对于PaymentSystem类)和一对多关系建立种子,但是我应该在Seed方法中编写什么代码来生成Parcel和BuyingItem的一些实例?我的意思是使用DbContext.AddOrUpdate(),因为每次运行Update-Database时我都不想复制数据.
protected override void Seed(ParcelDbContext context)
{
context.AddOrUpdate(ps => ps.Id,
new PaymentSystem { Id = 1, Name = …Run Code Online (Sandbox Code Playgroud) 我有一个bootstrap v3模式,就像在文档中一样.
当我第一次打开模态时("启动演示模型"按钮),垂直滚动条处于顶部位置.如果我向下滚动并在模态中单击"取消",它将关闭.没关系.但是,如果我再次打开模态,它将已经向下滚动.这是我想避免的情况.如何在顶部位置打开模态?
例如,我有两个表(临时表).其中一个只包含ID,另一个包含真实信息.它们具有完全相同的行号.
#Table1
ID
14
15
16
#Table2
CarModel Year
Ford 1996
Ferrari 2005
Toyota 2010
Run Code Online (Sandbox Code Playgroud)
如何将这两个表合并为一个(没有任何条件,只有结果表有3列,无论以什么顺序)?我需要它来插入真实表的结果
Cars
ID CarModel Year
Run Code Online (Sandbox Code Playgroud)
并且此表不使用标识.有一种获取ID的方法可以插入.我无法改变它.
因此,我需要一个像下列其中一个的表(排序并不重要):
#Table3
ID CarModel Year
14 Ford 1996
15 Ferrari 2005
16 Toyota 2010
Run Code Online (Sandbox Code Playgroud)
要么
#Table3
ID CarModel Year
16 Ford 1996
14 Toyota 2010
15 Ferrari 2005
Run Code Online (Sandbox Code Playgroud)
PS我理解如何使用CTE和row_number(),但我认为有更简单的方法来完成这项任务.并且可能此代码将用于MS SQL Server 2000,因此我很乐意查看其他解决方案的变体.