【问题标题】:Template 10 and netstandard 2.0模板 10 和 netstandard 2.0
【发布时间】:2018-07-19 02:26:35
【问题描述】:

我想知道模板 10 是否与 netstandard2.0 兼容。我在下面列出了一个非常简单的库:

using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;

namespace TransactionModel
{
    public class MyTransaction
    {
        [Key]
        public Guid TransactionId { get; set; }
        public string BankID { get; set; }
        public string MerchantID { get; set; }
        public DateTime TransactionDate { get; set; }
        public string TransactionDescription { get; set; }
        public float TransactionAmount { get; set; }
        public string TransactionComments { get; set; }

    }
    public class TransactionContext : DbContext
    {
        public DbSet<MyTransaction> transactionBatch { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
        {
            optionBuilder.UseSqlite("Data source=transactions.db");
        }
    }
}

下面列出的这个库 csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
        <TargetFrameworks>netcoreapp2.0;netstandard2.0</TargetFrameworks>
        <!--<TargetFramework>netstandard2.0</TargetFramework>-->
        <RuntimeFrameworkVersion>2.0.3</RuntimeFrameworkVersion>
        <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    </PropertyGroup>

    <ItemGroup>
    <PackageReference Include="microsoft.entityframeworkcore.Sqlite" Version="2.0.1" />
    <PackageReference Include="microsoft.entityframeworkcore.tools" Version="2.0.1" />
  </ItemGroup>

</Project>

我已经安装了 Microsoft.EntityFrameworkCore.Sqlite 和 Microsoft.EntityFrameworkCore.Tools 包,然后添加迁移以成功构建数据库。

但是当我尝试引用 TransactionModel 时,编译器产生了一堆错误,但我认为这是主要错误: " 无法解析程序集或 Windows 元数据文件.."

我附上了我的 vs2017 解决方案的图片。我还没有在 T10 上编写任何代码,我刚刚创建了 T10 模板,引用了我的库并且 vs2017 产生了错误。如果我使用 UWP,我没有收到这样的错误...

所以我的问题是是否可以将 T10 与 EntityFrameworkCore 和 netstandard2.0 一起使用?有没有办法绕过这个错误?

【问题讨论】:

  • 更正它不兼容。#soon 当 10.2 发布时,这在重构开发中很重要。但是你不需要 .netstandard 2 在 uwp 中使用 sqlite ...如果你只是使用 EFCore 以前的版本工作。
  • 您可以在aka.ms/template10 查看模板 10 的当前版本并亲自查看。下一个版本即将推出。

标签: visual-studio-2017 entity-framework-core template10 .net-standard-2.0


【解决方案1】:

无法在 Template 10 库上从 .NET Core 项目创建依赖项,因为 Template 10 库是通用 Windows 库。当前版本的模板 10 也是如此。模板 10 的下一版本也是如此。为什么?因为 Template 10 是为增强 UWP 应用程序开发而构建的库,因此需要 Windows 命名空间,如您所知,它不是 .NET Standard 的一部分。怎么会这样? Windows 命名空间永远不可能是跨平台的。话虽如此,Windows 10(新版本)的基本接口并非源自 Prism.Core,它是一个 .NET 标准库。这意味着导航界面和 MVVM 类都是外部的,可以继承模板 10。这回答了您的问题,我希望您了解技术上的原因。

【讨论】:

  • 尼克松:知道了。谢谢!现在,如果我想在模板 10 中使用 SQLite,我应该怎么做?你有或知道一个示例项目供我参考吗?模板 10 应该能够与 EntityFramework 一起使用吗?如果没有,我们如何在模板 10 中持久化数据?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 2018-02-10
  • 1970-01-01
相关资源
最近更新 更多