Visual studio 2017 模板10和NetStandard2.0

Visual studio 2017 模板10和NetStandard2.0,visual-studio-2017,entity-framework-core,template10,.net-standard-2.0,Visual Studio 2017,Entity Framework Core,Template10,.net Standard 2.0,我想知道模板10是否与netstandard2.0兼容。我有一个非常简单的库,如下所示: using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations; namespace TransactionModel { public class MyTransaction { [Key] public Guid Transact

我想知道模板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");
        }
    }
}
<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;
使用制度;
使用System.ComponentModel.DataAnnotations;
命名空间事务模型
{
公共类MyTransaction
{
[关键]
公共Guid事务ID{get;set;}
公共字符串BankID{get;set;}
公共字符串MerchantID{get;set;}
公共日期时间事务日期{get;set;}
公共字符串TransactionDescription{get;set;}
公共浮点事务装入{get;set;}
公共字符串TransactionComments{get;set;}
}
公共类TransactionContext:DbContext
{
公共数据库集事务处理批处理{get;set;}
配置时受保护的覆盖无效(DBContextOptionBuilder optionBuilder)
{
optionBuilder.UseSqlite(“数据源=transactions.db”);
}
}
}
此库csproj文件如下所示:

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");
        }
    }
}
<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>

netcoreapp2.0;netstandard2.0
2.0.3
真的
我已经安装了包Microsoft.EntityFrameworkCore.Sqlite和Microsoft.EntityFrameworkCore.Tools,然后成功地将迁移添加到数据库中

但当我试图引用TransactionModel时,编译器生成了一系列错误,但我认为这是主要错误: “无法解析程序集或Windows元数据文件..”

我已附上我的vs2017解决方案的图像。我还没有在T10上编写代码,我刚刚创建了T10模板,引用了我的库,vs2017生成了错误。如果我使用UWP,我没有得到这样的错误

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


由于Template 10库是通用Windows库,因此无法从Template 10库上的.NET核心项目创建依赖项。对于模板10的当前版本,这是正确的。对于模板10的下一个版本也是如此。为什么?因为模板10是为增强UWP应用程序开发而构建的库,因此需要Windows命名空间,正如您所知,该命名空间不是.NET标准的一部分。怎么可能呢?Windows命名空间永远不能跨平台。也就是说,Windows10(新版本)的基本接口不是从.NET标准库Prism.Core派生的。这意味着导航接口和MVVM类都是外部的,可以从单步模板10继承。这就回答了您的问题,我希望您理解技术原因。

无法从Template 10库上的.NET核心项目创建依赖项,因为Template 10库是一个通用Windows库。对于模板10的当前版本,这是正确的。对于模板10的下一个版本也是如此。为什么?因为模板10是为增强UWP应用程序开发而构建的库,因此需要Windows命名空间,正如您所知,该命名空间不是.NET标准的一部分。怎么可能呢?Windows命名空间永远不能跨平台。也就是说,Windows10(新版本)的基本接口不是从.NET标准库Prism.Core派生的。这意味着导航接口和MVVM类都是外部的,可以从单步模板10继承。这就回答了你的问题,我希望你能理解事情的技术原因。

没错,它不兼容。#很快10.2发布了,这正是重构开发的重点。但是在uwp中使用sqlite不需要.netstandard2。。。如果您只是使用EFCore以前的版本,您可以在查看当前版本的模板10并亲自查看。下一个版本即将发布。正确,它不是compat.,#10.2发布后不久,该版本正处于重构开发阶段。但是在uwp中使用sqlite不需要.netstandard2。。。如果您只是使用EFCore以前的版本,您可以在查看当前版本的模板10并亲自查看。下一个版本即将发布。尼克松:明白了。谢谢现在,如果我想在模板10中使用SQLite,我应该怎么做?你有或知道一个样本项目供我参考吗?模板10应该能够与EntityFramework一起使用吗?如果没有,我们如何在模板10中保存数据?尼克松:明白了。谢谢现在,如果我想在模板10中使用SQLite,我应该怎么做?你有或知道一个样本项目供我参考吗?模板10应该能够与EntityFramework一起使用吗?如果没有,我们如何在模板10中持久化数据?