问题标签 [entity-model]

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 投票
2 回答
959 浏览

c# - 如何使用 EntityFrameworkCore 从查询中生成实体模型

我正在尝试以只读模式将 ASP.NET Core Web 应用程序连接到现有的、非常复杂的数据库。

数据库非常复杂,无法将其布局直接映射到 EFC,我只是通过一组查询访问它的数据。这些查询是明确定义的,因此我可以毫无问题地提前定义与其结果匹配的对象。

但是,我似乎不知道如何为此定义数据库上下文的实体模型。当然,我不能在模型类上设置TableAttribute - 因为模型不反映一个表,而只是一个查询结果。只是将ColumnAttribute添加到模型的属性中似乎也不起作用,在数据库上下文中的OnModelCreating方法中,我总是收到错误“InvalidOperationException:实体类型'MyEntityModel'需要定义一个键。”

我应该定义什么键?好像查询没有其结果条目的键,或者它/我可以让它有一个吗?

不幸的是,我无法更改数据库以添加新视图、临时表或其他任何内容,我(可以)只有读取权限。

很可能我还没有理解 EF 背后的概念,但是我看到的所有教程/示例都只处理最基本和最简单的案例,我的 google-fu 似乎也让我失望了。

虽然看起来使用基本的连接查询断开无 EF 解决问题可能是可能的,但在我看来,采用 DtabaseContext/EF 方式更符合 ASP.NET Core 的原则。如果我在那里错了,请随时不同意或告诉我。

任何可能显示另一种方法来完成这项工作的样本也将受到高度赞赏。

0 投票
1 回答
1163 浏览

c# - MVC - EF - 多外键映射

抱歉,如果这已经得到解答,我找不到适合我的情况的答案。

我有一个实体类和一个视图模型。下面的示例:

实体:

视图模型:

我遇到的问题是我将有超过 50 个问题都使用相同的查找表“Q1Values”。上述问题是我必须在插入之前手动加载/映射 FK 实体从视图模型到实体模型。

我用视图模型尝试了以下

然后我映射了下拉列表,如下所示

但这仍然需要我将 映射到控制器中的一个完全加载的实体,因为它只包含 ID。

对此的最佳做法是什么?我需要为每个问题映射控制器中的完整实体吗?似乎冗长,因为它有很多重复。

我试图在我的实体类中手动定义外键,但似乎无法使其适用于多个 FK。见下文。

0 投票
0 回答
166 浏览

asp.net - 如何使用 ADO.Net 实体数据模型创建模型

我是 ASP C#.Net 的新手。我需要从 ASP.Net 应用程序连接到数据库并显示获取的数据。问题是从 ASP.NET MVC 5 应用程序连接到 SQL Server 2000。

DB Server(MS SQL Server 2000) 连接是使用带有用户 DSN 的 ODBC 驱动程序配置的。

如果我尝试添加实体,它会提示我以下错误。如何创建实体和/或读取/读取数据库?

错误信息

非常感谢您提前提供的所有帮助。

0 投票
2 回答
920 浏览

entity-framework - 如何使用 EF 原始 SQL 查询和/或 LinQ 填充实体模型?

我想填充下面的实体模型:

使用 EF 和一些原始 SQL 查询的数据:

但我不能这样做:

因为它会给我带来错误,例如

无法将类型“System.Collections.Generic.List”隐式转换为“MyProject.Models.Abc”

所以,问题是:

1)如何将列表转换为模型或更好地直接填充模型而不是使用原始 SQL 的列表?

2) 我知道 LinQ 可以用更少的代码让事情变得更容易......我怎样才能用 LinQ 做到这一点?

0 投票
1 回答
891 浏览

c# - 如何使用 AngularJS $http 将对象 + 数组发布到 WebApi .NET/C# 控制器?

我的 C# 模型:

我的 C# 方法:

我的 AngularJS $http:

我可以用以下内容填充 MyModel:

或 MyModel 中存在的 MyList :

但我不知道如何填充它们。我尝试了两种选择:

这是行不通的,因为第二个数据会覆盖第一个数据。我也试过这个:

但在这种情况下,只有 MyList 被填充。

我试图像这样修改 MyMethod :

结果更糟。

那么,它是如何正确完成的呢?

编辑:我忘了包括这些:

0 投票
0 回答
54 浏览

mysql - SQL - 根据实体类型使 id 以数字开头

在我的数据库中,我有一个用户表。我没有在数据库中表示这一点,但在我正在处理的应用程序的实现中,有两种类型的用户(比如说 A 类型和 B 类型)。

我想要做的是让 A 类型用户的 id 以 1 开头(例如 idUser=1016)和 B 类型用户 id 以 2 开头(例如 idUser=2634)。

这可能吗?我一直在尝试通过 AUTO_INCREMENT 来做到这一点,但我不太确定如何实现这个想法。

0 投票
3 回答
291 浏览

c# - 反序列化仅在一个模型(类)中具有块的 JSON 文件

如何反序列化在单个类中有块的 JSON 文件?有没有一种方法可以使用 Class 中的 JSON 注释来告知属性的父块和属性的父块是什么?

JSON如下:

这是我想用来反序列化 JSON 的类:

例如,在反序列化此类的 JSON 时,如何通知属性 Nome_Navio 位于块 Navio 内,并且 JSON 属性为 NOME?

0 投票
1 回答
127 浏览

c# - 如何使用 lambda 表达式和 linq 将包含另一个实体模型类型列表的实体模型添加到带有 EF 的数据库

我有一个实体模型,其中包含一个列表,该列表是另一个实体模型的类型,当我将每个道具添加到道具时,一旦发生空引用异常,我需要将带有另一个模型列表的记录添加到数据库中使用 ForEach 列出

0 投票
0 回答
30 浏览

java - java中观察者设计中的一个复杂问题的设计解决方案

我在 POJO 中定义了一个实体模型

我已经实现了一个观察者模式,其中有 2 个具体的观察者 - JsonListener 和 DatabaseListener,它们用于将 A 类的单例实例序列化为 json 文件(使用 jackson)并作为 json clob 序列化为 db。我有一个 LifeCycleManager 接口,带有通常的 register()、deregister() 和 notify() 方法来添加侦听器并通知他们

我为每个类编写了一个构建器来修改私有属性(故意没有定义任何设置器)。构建器有一个 update() 方法,我想通过它隐式通知所有注册的侦听器。

有2个查询-

  1. 我是否应该为所有类 A、B、C 实现 LifeCycleManager 接口,以便调用 notify() 方法?或者是否有替代方法可以避免这种情况,因为随着实体模型的增长,它看起来很麻烦。

  2. 由于我正在写入 json 文件,据我所知,使用任何 json 库(如 fastxml.jackson),我需要将整个 json 对象(从 A 类开始)重新写入 json 文件。如果我的理解是正确的,那么如果我在 Class C 的构建器中并发出 notify() 方法,我如何用 Class A 的实例通知侦听器?(基本上我如何从 C 类中获取 A 的实例?),因为仅更新 C 类实例还不够好 - 我需要尊重关联。是否有一些我可以利用的设计?

请提出建议或建议,即使它需要对我的思路进行完整的课程修正。

谢谢。

0 投票
3 回答
3169 浏览

c# - 如果数据库表中不存在列,则排除或忽略实体模型的属性

我在实体模型中添加了新属性,因为新列已添加到数据库表中。但是在该列中可能存在或可能存在于其他客户端数据库中。那么,如何处理呢?我试过modelBuilder.Entity<Customer>().Ignore(customer => customer.FullName); 但它没有忽略实体中的属性。因为我们有实体映射类,所以它不会忽略它。请问解决方法?