【发布时间】:2016-08-13 02:59:54
【问题描述】:
我对 Entity Framework 和 C# 还很陌生,所以如果我描述问题的能力有限,我深表歉意。
我有一个托管在 Azure 上的 .NET Web 窗体项目,它使用实体框架来处理所有数据库表。我最近遇到了一个正在调试的问题,我创建了测试记录,一旦使用 Microsoft SQL Server Management Studio 解决了问题,我就删除了这些记录。不幸的是,我现在收到以下错误:
“支持 'RegSysContext' 上下文的模型在创建数据库后发生了变化。考虑使用 Code First 迁移来更新数据库”
RegSysContext 类如下所示。
据我了解,这是由于 Entity Framework 使用的元数据不再与数据库匹配造成的。数据库中的数据必须保留,否则我只会擦除它并忘记它。
如何在托管 Web 应用上解决此问题,以及如何在以后编辑数据库而不导致此问题?
提前致谢!
public class RegSysContext : DbContext
{
// Default Constructor for the context class
public RegSysContext() : base("RegSys")
{
}
// Properties of the context class
public DbSet<CustomerAccountMembership> AccountMembershipRecords { get; set; }
// For Organization Account functionality
public DbSet<RegSysAccount> RegSysAccounts { get; set; }
public DbSet<Subscription> Subscriptions { get; set; }
public DbSet<SubscriptionRecord> SubscriptionRecords { get; set; }
public DbSet<PaymentInfo> PaymentAccountInfoRecords { get; set; }
// For Auction functionality
public DbSet<Auction> auctions { get; set; }
public DbSet<AuctionItem> auctionItems { get; set; }
public DbSet<AuctionLot> auctionLots { get; set; }
public DbSet<AuctionDonation> auctionDontations { get; set; }
public DbSet<AuctionSale> auctionSales { get; set; }
public DbSet<ItemInAuctionRecord> itemInAuctionRecords { get; set; }
// For Event functionality
public DbSet<Event> events { get; set; }
public DbSet<EventParticipant> eventParticipants { get; set; }
public DbSet<RegistrationPeriod> registrationPeriods { get; set; }
public DbSet<RegType> regTypes { get; set; }
public DbSet<RegPrice> regPrices { get; set; }
public DbSet<EventCategory> EventCategories { get; set; }
//public DbSet<RegistrationConfig> regConfigs { get; set; }
//public DbSet<RegFormConfig> regFormConfigs { get; set; }
// For Organization functionality
public DbSet<Lodge> Lodges { get; set; }
// For Participant functionality
public DbSet<Participant> Participants { get; set; }
public DbSet<Charge> Charges { get; set; }
public DbSet<EventParticipantToParticipantLinker> EventParticipantLinks { get; set; }
// For System functionality
public DbSet<RegSysMessage> RegSysMessages { get; set; }
public DbSet<Transaction> Transactions { get; set; }
// For Trading Post functionality
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<CartItem> ShoppingCartItems { get; set; }
public DbSet<ProductInventory> ProductInventories { get; set; }
public DbSet<TradingPost> TradingPosts { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderDetail> OrderDetails { get; set; }
public DbSet<ProductSale> ProductSales { get; set; }
public DbSet<SpecialOffer> SpecialOffers { get; set; }
}
【问题讨论】:
-
@MarkC。我一直在查看MigrateDatabaseToLatestVersion Initializer,因为它看起来可以满足我的需求,尽管我现在只是想弄清楚如何使用它。
-
如果您正在执行 Code First,您似乎还没有运行
Update-Database命令。另外,您是否启用了迁移? -
我绝对没有运行过该命令,因为我不熟悉它。你用什么来运行命令,包管理器控制台?如何启用迁移?
-
你在看教程还是什么?我正在努力弄清楚我可以为您提供哪些资源来帮助您
标签: database entity-framework azure