使用实体框架核心,我们可以生成包含用于创建表、列、索引等…的数据库信息的C#迁移文件然后,我们可以使用命令行或EF DbContext部署数据库。 有没有一种方法可以通过代码直接使用Migrations API来修改数据库,而不使用“真正的”迁移(没有代码模型或dbContext)? 我想做这样的事情: var builder = new MigrationBuilder(activeProvider);
builder.CreateTable(
name: "Table1",
columns: table => new
{
Id
我正在使用.NET核心构建一个应用程序,但我遇到了实体框架方面的问题。在创建第二个迁移以更新使用"dnx ef migrations add"和"dnx ef database update"命令对模型所做的更改后,我收到有关尝试删除不存在的外键约束的错误。看起来实体框架在生成迁移文件之前没有审查目标数据库。
为了尝试并确认这一点,我在我的开发环境中创建了一个全新的数据库,并更新了我的appsettings.json文件以针对这个新数据库。然后,我生成了另一个迁移文件,以检查它是否会注意到数据库为空,并创建一个迁移文件来构建模式。相反,它创建了一个迁移文件,该文
我有c# windows应用程序,代码优先和自动迁移与城市类:
class City
{
public int Id { get; set; }
public string Name { get; set; }
}
我的应用程序上下文类是:
class AppDbContext : DbContext
{
public AppDbContext() : base("ConnectionString")
{
}
protected override voi
假设我正在使用此示例中的图形数据库(SQL Server 2017):
我有以下SQL查询:
-- Find Restaurants that John likes
SELECT Restaurant.name
FROM Person, likes, Restaurant
WHERE MATCH (Person-(likes)->Restaurant)
AND Person.name = 'John';
我使用EF 6.1.3在C#中创建了一个模型,它会自动生成数据库中的所有类和所有内容(数据库中的EF Designer )。这一切都运行得很好。我甚至可以使用一个简单的
我正在使用实体框架迁移,需要在实体中设置小数属性的精度和小数位数。我只想对这个小数属性执行此操作,而不是所有小数属性。我已经覆盖了OnModelCreating方法,默认情况下将decimal设置为(18,2)。我需要这个属性是(22,5)。举个例子,
public class AdditionalCharge
{
public decimal? Rate { get; set; }
}
在数据库中创建为"decimal (18,2) NULL“列。我需要它变成一个"decimal (22,5) NULL“列。
我可以创建一个空的迁移并手动编写更改代码,
public ov
我在申请更新数据库命令。突然出现了一个错误,即Aspnetroles表已经存在。注意,我已经多次删除了项目中的迁移文件夹。我已经理解实体框架正在尝试应用我以前的所有迁移。然后我检查了我的dbo.__EFMigrationsHistory表,它是空的,如图所示
我已经尝试过删除迁移文件夹并删除数据库中的所有表。但是它运行第一次迁移,创建表,并且在数据库中的迁移历史表中不保留任何跟踪。
另一个有用的观点是,当我删除迁移文件夹并输入命令enable-迁移时,它会给出黄色背景的警告:
Enable-Migrations is obsolete. Use Add-Migration to start u
在c#项目中,我有一个引用域模型实体的DbContext。创建迁移代码时,
附加迁移MySetup
命令、实体框架(我使用Version6.1和SqlServer)不仅为定义的实体创建迁移,而且还添加子类的属性(即使它们位于不同的名称空间中,而不是在DbContext中使用)。
示例:
class MyContext : DbContext
{
public IDbSet<User> Users { get; set; }
...
}
class User
{
public long Id { get; set; }
...
}
在另一个地方,我有
首先在C#中使用EF进行代码尝试,然后我被困住了,因为我声明
public class Members
{
public int Id { get; set; }
[Required]
[StringLength(50)]
public string Name { get; set; }
public string Surname { get; set; }
[Display(Name = "someDisplayName")]
public bool ABool{ get; set; }
public R
下面是我想要创建的超级简单类。
public class Company
{
public int ID { get; set; }
[Column(TypeName = "VARCHAR(254)")]
[Index]
public string Name { get; set; }
[Index]
public int stupidField { get; set; }
}
我的目标是强迫Name成为唯一的,所以我添加了装饰[Index(IsUnique = true)]。但是没有创建唯一的索引,所以我想我将首先尝试解决创