问题标签 [db-first]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
346 浏览

sql-server - SQL Server 和实体框架性能改进

我使用 SQL Server 和实体框架作为 ORM。

目前我有 5 个带有静态数据的大型表。实际上这些表只用于数据检索过程。

我会用我的项目举一个很好的例子。

  • 这是与旅行相关的项目,我必须明智地存储我的酒店静态数据 API(实际上有酒店预订 api。他们为我们提供酒店静态数据)

  • 我必须处理世界范围内的酒店数据。这意味着超过 100,000

  • 如果我们得到 1 家酒店,它包括所有酒店详细信息,如设施、历史...... 明智的图像 url。

  • 这些数据我得到了城市明智的

    比方说 Paris XML 或 Json - 我在那个文件中有 1000 多个酒店详细信息。这意味着 10MB 或 20MB 文件大小。

    在城市方面,一个 API 有超过 40000 行。一些 api 超过 70000。

  • 始终最终用户搜索城市明智,所以现在我将这些数据城市明智地存储在我的 SQL Server 中。因为酒店明智地保存这些数据实际上会减慢我们的速度。

现在我将提供我的技术方面的详细信息。

  • 我正在使用 Azure SQL Server 和 ASP.Net MVC 4 项目
  • 站点托管在 Azure 应用服务中
  • 我在 EF 中使用数据库优先方法

我将向您展示我的数据库结构。这很简单。

我的主键是 ID(身份和非聚集),我的索引是 DestinationCode,因为我总是在代码中按目的地(城市)搜索酒店。

这些静态数据更新应每年进行 10 次或更少。

在我的项目方面,如果我想要一些目标静态数据,我应该怎么做?正在编写一个 linq 查询

现在我的问题是这个静态数据检索部分很慢。

当用户键入Paris并开始搜索时,我的网站在 Azure 应用服务上发布后,此过程会变慢。

(现在我正在为一个静态数据集执行此操作 - 一个 API 包括城市明智的酒店数据行 50000,每行明智包括 500 多家酒店。前巴黎城市行 - 15mb)

我对你的问题是:

  • 这是一个糟糕的设计吗?
  • 还有另一种方法吗?
  • 我需要在实体框架方面进行性能改进吗?
0 投票
1 回答
1063 浏览

wpf - 在实体框架中,DbSet.Local 保持不同步

这让我发疯:我有一个基于数据库的 EF 模型,该数据库包含一个名为 Category 的表,其中包含 6 行。我想在 WPF 的下拉列表中显示它,所以我需要将它绑定到Categories.LocalObservable 集合。问题是这个可观察的集合永远不会收到数据库表的内容。我的理解是,在执行查询或保存数据时,集合应该与数据库同步,SaveChanges() 所以我运行了以下 2 个测试:

测试 1 在数据库中显示 6 行,在本地显示 0 行。测试 2 在数据库中显示 7 行,在本地显示 1 行(两个版本)

我也尝试使用_db.Category.Load(),但正如预期的那样,它不起作用,因为它是数据库优先,而不是代码优先。

我还浏览了这个页面https://msdn.microsoft.com/en-us/library/jj574514(v=vs.113).aspx,创建了一个基于对象的数据源并将我的组合框链接到它,但没有成功.

有谁知道我做错了什么?预先感谢您的帮助。

0 投票
0 回答
467 浏览

asp.net-mvc - 从数据库更新 MVC 模型

我对 EF 和 MVC 以及它们如何协同工作仍然很陌生,所以请原谅我的无知。我有一个 SQL DB,我从中生成了 MVC 数据模型,并且我最近在几个表中添加了一些字段,现在我需要将这些更改从我的 SQL DB 更新到我的 Model1.edmx 中。

问题是当我从我的数据库中更新模型时,更新覆盖了我的所有[Display(Name = "DisplayName")][Required]每个字段。

所以,我的问题是:有没有办法维护我对模型的所有当前更改,并且只引入新字段而不覆盖模型中的每个表?


编辑:我试过这个:向实体框架生成的类添加数据注释但没有成功。每当我从数据库中重新生成模型时,它只会覆盖我在那里拥有的任何类。我正在创建一个公共类,就像在示例中一样,但是当我更新模型时它会被擦除。有任何想法吗?


任何帮助都是极好的!谢谢!

0 投票
1 回答
652 浏览

entity-framework - Scaffold-DbContext 和 dotnet-ef-dbcontext-scaffold 之间的区别

我看到有办法在 Entity Framework Core 2.0 中构建实体和数据库上下文。

  1. 使用Scaffold-DbContext
  2. 使用dotnet ef dbcontext scaffold

为什么有两种工具,有什么区别?

0 投票
1 回答
2564 浏览

c# - EntityFramework.dll 中出现“System.Data.Entity.Core.MappingException”类型的异常,但未在用户代码中处理

我正在尝试在实体框架中使用此函数插入​​数据但没有 MVC

有关此异常的其他信息是:

“概念端类型“DatabaseDBModel.student”中成员“SchoolId”的类型“Edm.String”与对象端类型“SchoolManagementSystemOOP.Models”中成员“SchoolId”的类型“System.Int32”不匹配。学生'。”

我的分支类代码如下:

}

学生班级代码:

我想要一些有关导致异常的原因的见解和线索,我还尝试将学校的 int 类型更改为 string 的类型。

0 投票
1 回答
3981 浏览

entity-framework - ExecuteFunction 仅支持具有返回类型的存储过程和函数

我需要从实体框架调用 SP,使用 DB 优先方法。下面是它的代码。但我面临错误。

“存储过程或函数‘XXXXXXX’没有返回类型。ExecuteFunction 仅支持具有返回类型的存储过程和函数。”

0 投票
0 回答
22 浏览

c# - 使用 Entityframework DBFirst 进行并发控制

我为并发控制添加了 RowVersion 并将该字段的并发模式设置为 Fixed。但是当我尝试更新该列时,即使该行没有被其他用户更新,它也会显示 DbUpdateConcurrencyException。

0 投票
0 回答
53 浏览

c# - EF 代码首先使用解决方案上的特定项目,忽略迁移

我有一个解决方案,它有很多项目。我的解决方案如下所示:

我的解决方案

  • WinService1
  • WinService2
  • 网页界面
  • 实体
  • 数据访问层
  • 商业逻辑

我的 Winservice1 和 WinService2 项目使用了 DAL。我的问题就在这里。如果有人为 WebUI 项目更改实体并更新数据库,我需要在远程更新我的 Windows 服务。但我不想更新,因为它们的实体是特定的,如果它们会改变,这意味着我必须更新。

我的问题在这里。我可以使用 db-first 数据库吗?或者是否可以忽略(不检查)特定项目的迁移?最佳做法是什么?

0 投票
1 回答
1007 浏览

entity-framework - DB-First Entity Framework 上下文未显示我的表

这是我第一次处理实体框架。我添加了 ADO.NET 实体数据模型类 -> 选择要使用的数据库 -> 选择我想要的表 -> 名称/命名空间 -> 完成

当我在解决方案资源管理器中查看课程时,没有显示表格。当我实例化它时,它不会将我的表显示为选项。

我错过了什么吗?

在此处输入图像描述

选择表

在此处输入图像描述

完成加载后的空图

在此处输入图像描述

分类

在此处输入图像描述

0 投票
3 回答
7077 浏览

mysql - EF Core MySQL 数据库优先?

我有一个位于 Amazon Cloud (RDS) 中的 MySQL 数据库。它是一个只有一张表的小型数据库。

我想使用 EF Core,数据库优先。我知道该Pomelo.EntityFrameworkCore.MySql包很受欢迎,但我看不到任何有关如何通过该包实现 Db 上下文脚手架的信息。

我按照此处的说明进行了替换MySql.Data.EntityFrameworkCore.DesignPomelo.EntityFrameworkCore.MySql但是当我在包管理器控制台中运行以下命令时:

我刚得到错误:

无法解析指定的框架版本“2.0”

我错过了什么?这是我的虚拟解决方案的外观

解决方案截图