Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我可以将实体框架与非关系SQL Server数据库一起使用吗?_Sql Server_Entity Framework_Non Relational Database - Fatal编程技术网

Sql server 我可以将实体框架与非关系SQL Server数据库一起使用吗?

Sql server 我可以将实体框架与非关系SQL Server数据库一起使用吗?,sql-server,entity-framework,non-relational-database,Sql Server,Entity Framework,Non Relational Database,我正在和一个为经营慈善券公司的人开发桌面应用程序的人合作一个项目。他们有客户,他们有账户,他们把钱放进自己的账户,他们给慈善机构写慈善券(有点像支票) 他想让我写一个网站,让慈善机构和客户都可以登录,查看他们的账户、发放的代金券等详细信息 由于大部分数据将来自他的应用程序到我的网站,我们同意在我的数据库中使用他的主键ID,因此很容易匹配数据 我们对此非常了解,我发现他是关系数据库的坚定反对者。他的数据库根本没有任何外部引用键,只有表中的ID。他对每个表进行单独查询,以查看是否存在相关数据 我想使

我正在和一个为经营慈善券公司的人开发桌面应用程序的人合作一个项目。他们有客户,他们有账户,他们把钱放进自己的账户,他们给慈善机构写慈善券(有点像支票)

他想让我写一个网站,让慈善机构和客户都可以登录,查看他们的账户、发放的代金券等详细信息

由于大部分数据将来自他的应用程序到我的网站,我们同意在我的数据库中使用他的主键ID,因此很容易匹配数据

我们对此非常了解,我发现他是关系数据库的坚定反对者。他的数据库根本没有任何外部引用键,只有表中的ID。他对每个表进行单独查询,以查看是否存在相关数据

我想使用实体框架,但不确定是否可以,因为我不能确定他发送给我的数据是否完整。例如,他可能会向我发送凭证的详细信息,其中包含客户ID和慈善机构ID,但该客户可能尚未发送,因此凭证上的客户ID将不存在于customers表中

你知道我能做什么吗?我的表之间不能有外部链接,因为这会在遇到不完整数据时抛出错误,但是如果我没有任何链接,那么我就失去了使用EF的全部好处

到目前为止,我唯一的想法是让表不相关,然后为实体添加分部类,其属性类似于导航属性,但会检查是否存在“外来”数据,如果存在,则返回它


这可能有效,但似乎需要很多努力。关于我如何处理这种情况,有没有更好的建议?

这是一个很晚的答案,但由于我偶然发现了这个问题,它可能对其他人有用

Microsoft最近宣布EF Core(在ASP.NET Core 2.1中)用于:

Cosmos DB提供商预览:我们一直在开发EF核心 Cosmos DB中DocumentDB API的提供程序。这是第一次 我们制作的文档数据库提供程序,以及从中获得的经验 此练习将为设计的改进提供信息 2.1之后的后续版本。目前的计划是提前公布一份报告 在2.1时间范围内预览Cosmos DB提供程序


注意:可以看到包含ASP.NET Core 2.1主要功能的简短视频

*用一条湿漉漉的鱼打他的头,直到他意识到关系数据库是多么的棒和超级酷,没有关系数据库是多么的糟糕?EF在没有关系的情况下工作得很好。如果您的数据模型只是一组不相关的表,那么您还能做什么?除了湿漉漉的鱼?史蒂文,我和他争论了很多次,但这是浪费时间。Phil,我知道EF会起作用,因为它会为我创建对象,但是我失去了导航属性等的所有好处。正如我所说,我可以通过添加我自己的来模拟这一点,但这意味着要做很多工作。我希望会有更好的方法。如果这对任何人都有帮助,我再次问了这个问题(措辞更清楚),并得到了一个很好的答案。有关详细信息,请参见此处。。。