当前位置: 首页 > 编程笔记 >

从C#使用实体框架(代码优先)

郦何平
2023-03-14
本文向大家介绍从C#使用实体框架(代码优先),包括了从C#使用实体框架(代码优先)的使用技巧和注意事项,需要的朋友参考一下

示例

代码首先使您无需使用GUI设计器或.edmx文件即可创建实体(类)。它被命名为第一准则,因为你可以创建你的模型首次实体框架将根据自动映射为您创建数据库。或者,您也可以在现有数据库中使用这种方法,在现有数据库首先将其称为代码  。例如,如果您想要一个表来保存行星列表:

public class Planet
{
    public string Name { get; set; }
    public decimal AverageDistanceFromSun { get; set; }
}

现在创建上下文,它是实体类和数据库之间的桥梁。给它一个或多个DbSet<>属性:

using System.Data.Entity;

public class PlanetContext : DbContext
{
    public DbSet<Planet> Planets { get; set; }
}

我们可以通过执行以下操作来使用它:

using(var context = new PlanetContext())
{
    var jupiter = new Planet 
    {
        Name = "Jupiter", 
        AverageDistanceFromSun = 778.5
    };

    context.Planets.Add(jupiter);
    context.SaveChanges();
}

在这个例子中,我们创建一个新的Planet与Name属性与价值"Jupiter"以及AverageDistanceFromSun与价值属性778.5

然后,我们可以Planet使用DbSet的Add()方法将其添加到上下文中,并使用方法将更改提交到数据库SaveChanges()。

或者我们可以从数据库中检索行:

using(var context = new PlanetContext())
{
    var jupiter = context.Planets.Single(p =>p.Name== "Jupiter");
    Console.WriteLine($"Jupiter is {jupiter.AverageDistanceFromSun} million km from the sun.");
}
           

 类似资料:
  • 因此,我使用实体框架的“代码优先”方法,并且我有映射文件来映射表信息并添加诸如验证之类的内容,例如: 这是在使用Fluent API,我想知道如何通过字符串而不是T.AccountName获得属性名。我想动态设置这些属性,但我不知道如何通过编程实现。

  • 问题内容: 我想建立这样的关系(一个区域在x个其他区域的附近) 不幸的是,这是行不通的,因为EF生成的FK不正确…我如何才能使像这样的结构起作用? 3个区域的示例:3 Zones: Zone 1, Zone 2, Zone 3 Zone 1 Neighours: Zone 2, Zone 3 Zone 2 Neighbours: Zone 1 Zone 3 Neighbours: Zone1 有什

  • 好吧,我知道我对C#和MVC还很陌生,但我正在尝试使用代码优先的方法向数据库中添加项。 现在,我已经成功地为数据库创建了新条目,但当我转到SQL Server时,却找不到数据库或表。 因此,我的问题是,这些数据存储在哪里,因为我无法在SQL Server中看到它,就像我手动创建的其他数据库一样? 我的ConnectionString是:

  • 我对Entity Framework 6非常陌生,我想在我的项目中实现存储过程。我有一个存储过程,如下所示: 班级: 我的问题是:如何调用存储过程并向其中传递参数?

  • 问题内容: 我首先在我的项目中使用EF代码。我的DataModel中有以下代码 为了使该值不为空,我删除了“?” 并从“程序包管理器”控制台中运行“添加迁移”命令。以下迁移文件已生成。 但是当我运行Update-Database命令时: 我收到以下错误:无法将值NULL插入表“’‘的“ PasswordDate”列中;列不允许为空。UPDATE失败。该语句已终止。 请提出解决方案。 问题答案: 那

  • [将代码优先DbContext与实体框架5.0 RC一起使用] DbUpdateException:更新条目时出错 我需要能够将这些父类保存到数据库中,因为它们是唯一的,即使它们有时包含已存储的导航属性-我如何从这个子主键冲突中保存父类?

  • 问题内容: 我在项目中使用EDM模型。 当我通过发布请求在数据库中插入俄语单词时,我得到 控制器: 在数据库中,所有字符集都设置为utf-8 在布局页面中,内容的enc类型为utf-8 数据库代码: 问题答案: 添加到Entity Framework的连接字符串中 这是一个工作添加节点:

  • 实体框架5.0首先使用现有数据库编写代码。使用电动工具对类进行逆向工程。一切都很好。数据库有两个表。一个父母和一个孩子的外键返回到父母ID。ID都是带有自动增量的int。我添加了许多父母记录,现在想将孩子记录添加到特定的父母。我能看到的唯一方法是通过在父母表中搜索名称或其他属性并返回ID来找到适当的父母ID。然后在添加孩子时在外键属性中使用该ID。我不想设置新父母,所以这是将孩子添加到现有父母的唯