gpt4 book ai didi

database - 手动更改 Entity Framework 数据库会导致错误

转载 作者:行者123 更新时间:2023-12-03 04:29:30 25 4
gpt4 key购买 nike

我对 Entity Framework 和 C# 相当陌生,因此,如果我描述问题的能力有限,我深表歉意。

我有一个托管在 Azure 上的 .NET Web 窗体项目,该项目使用 Entity Framework 来处理所有数据库表。我最近遇到一个正在调试的问题,并创建了测试记录,在使用 Microsoft SQL Server Management Studio 解决问题后我将其删除。不幸的是,我现在收到以下错误:

“自创建数据库以来,支持“RegSysContext”上下文的模型已发生更改。请考虑使用 Code First 迁移来更新数据库”

RegSysContext 类如下所示。

据我了解,这是由于 Entity Framework 使用的元数据不再与数据库匹配引起的。数据库中的数据是必须保留的,否则我就会把它擦掉然后忘记。

如何在托管网络应用程序上解决此问题,以及将来如何编辑数据库而不导致此问题?

提前致谢!

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; }
}

最佳答案

将此行添加到 RegSysContext 类中的构造函数中:

Database.SetInitializer<RegSysContext>(null);

这行代码的作用是告诉 Entity Framework 是否创建数据库。将 null 传递到 IDatabaseInitializer 策略 参数中,基本上可以完全禁用数据库的初始化(因为它已经存在)

关于database - 手动更改 Entity Framework 数据库会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com