2012-06-14 27 views
0

此问题与从未回答过的this question有关。这里我有一个更真实的例子 - 所以希望得到一些帮助。操作失败,因为表'Bids'上已经存在名为'IX_AuctionId'的索引或统计信息

我有一个拍卖,竞标和auctiondetail(flatten表)类。 我想包括我在拍卖会上出价和auctiondetail表,拍卖和auctiondetail具有相同的PK

using System.Collections.ObjectModel; 
using System.ComponentModel.DataAnnotations; 

namespace OnCall.VirtualWarehouse.Data.Models.Auctions 
{ 
    using System; 

    public class AuctionCopy 
    { 
     public Guid AuctionCopyId { get; set; } 

     public virtual Collection<BidCopy> BidCopies { get; set; } 

    } 

    public class BidCopy 
    { 
     public Guid BidCopyId { get; set; } 

     public Guid AuctionCopyId { get; set; } 

     public AuctionCopy AuctionCopy { get; set; } 


    } 

    public class AuctionDetailCopy 
    { 
     [Key] 
     public Guid AuctionCopyId { get; set; } 

     public virtual Collection<BidCopy> BidCopies { get; set; } 
    } 

} 

这里是我的DbContext:

public class DataContext : DbContext 
{ 
    static DataContext() 
    { 
     Database.SetInitializer(new DropCreateIfChangeInitializer()); 
    } 

    public DataContext() 
    { 
     Configuration.ProxyCreationEnabled = false; 
    } 

    public IDbSet<AuctionCopy> AuctionCopy { get; set; } 

    public IDbSet<BidCopy> BidCopy { get; set; } 

    public IDbSet<AuctionDetailCopy> AuctionDetailCopy { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 
    } 

    public void Seed(DataContext context) 
    { 

    } 
} 

当生成数据库,我得到

The operation failed because an index or statistics with name 'IX_AuctionId' already exists on table 'Bids'. 

任何想法,我可以得到这个工作?

+0

是否标记“Key”属性[NotMapped]不能解决问题?为什么你需要重写附加属性“Key”? – kingdango

+0

感谢您的评论。我尝试彻底删除关键属性,因为它与问题没有任何关系。更新了上面的问题以反映这一变化。即使删除了关键属性,问题仍然存在。 –

+0

您是否在完成之后刷新数据库中的模式?尝试将模式推入空数据库。 – bluevector

回答

相关问题