C# 解决方案布局 - WPF + ASP.NET Core + 共享代码

标签 c# asp.net .net wpf asp.net-core

我目前正在开发一个 WPF 项目,该项目与在 Windows Server 2012 计算机上运行的 ASP.NET Core 服务器应用程序进行通信。为了在两个类中使用我的模型,我在中间使用了一个类库。

我当前的布局如下所示:

WPF - .NET 4.6
Class Library - PCL NetStandard1.3
WinForms Application - .NET4.6
ASP.NET Core - .NET4.6 

除了在 PCL 中使用 DataAnnotations 之外,目前一切正常。 我也在 PCL 中定义了我的 DbContext 和我的身份模型。

随着我从事这个项目的时间越来越长,我认为这是错误的布局。一旦我使用经典类库,我就无法将 Identity.EntityFramework 添加到项目中。

如果我的项目布局有更好的解决方案或者我做的方式完全错误,谁能给我提示?

感谢您的帮助!

更新

好的,我可以让它工作。我不小心使用了 Visual Studio 中的可移植类库模板。当我切换到 Net Standard Library Template 并添加 .Net 4.6 Framework 时,DataAnnotations 起作用了。要从 WPF 和 WinForms 引用库,我必须直接引用 dll,因为项目引用不起作用。

最佳答案

如果我理解正确的话,我想您的 WPF 应用程序仅通过某些 API 与 ASP.NET Core 应用程序通信。

这意味着您只需将数据库处理添加到 ASP.NET Core 项目(DbContext 等)中,并让 .NET Standard 库单独在 WPF 和 ASP.NET Core 应用程序之间共享模型。

不幸的是,我不能说为什么 DataAnnotations 不适合你。您能否指定您使用的是 Entity Framework 还是 Entity Framework Core(包括已安装的版本)?

如果是 EF6,请确保您在模型中有针对“System.ComponentModel.DataAnnotations”的 using 指令。

此外,如果您能具体说明您尝试使用哪些数据注释以及它在哪里/如何失败,这将非常有用。

关于C# 解决方案布局 - WPF + ASP.NET Core + 共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620377/

相关文章:

c# - LINQ 查询选择前五名

asp.net - 即使项目中没有错误,Xamarin 应用程序也不会部署

c# - 自定义数据类型

c# - 根据 ASP.NET 查询从模型返回部分列表

C#:转换 Unicode 以用作 url

c# - 在修改 Cursor 的代码中重定向标准输出

C#:是否可以取消 linq2sql 查询?

c# - Rx 通过加入一个属性来组合许多流

java - sql 选择并插入已连接的项目,但我想全部显示

asp.net - asp.net 中子菜单和父菜单的独立设计