我有一个数据库,我想为实体框架添加一个单独的类库来访问数据,但是当我运行scaffold命令时,它将在我的Web应用程序中创建一个数据库模型。
答案 0 :(得分:0)
您应该在包管理器控制台中选择 Data 项目作为默认项目。
请注意,您在data.csproj中有ef核心引用
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0-preview3-35497" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0-preview3-35497" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0-preview3-35497" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.0-preview3-35497"/>
<PackageReference Include="System.Data.Common" Version="4.2.1" />
</ItemGroup>
</Project>
我意识到ClassLibrary项目中存在一些错误。您可以看看它们:
答案 1 :(得分:0)
@ibrahimozgon的答案是正确的,对我有所帮助。但是,我在DbContext类中遇到了一些错误,但他没有提到如何解决:
'EntityTypeBuilder'不包含'ToTable'的定义,找不到可以接受的扩展方法'ToTable',它接受类型为'EntityTypeBuilder'的第一个参数(您是否缺少using指令或程序集引用?
和
'KeyBuilder'不包含'ForSqlServerIsClustered'的定义,并且找不到可以接受的扩展方法'ForSqlServerIsClustered'接受类型为'KeyBuilder'的第一个参数(您是否缺少using指令或程序集引用?
要解决DbContext类中的这些错误,请再次打开包管理器控制台,然后选择默认项目作为类库。依次输入以下命令:
- Install package: Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4 (or whichever latest version)
- Install package: Install-Package Microsoft.EntityFrameworkCore.Relational -Version 2.2.4 (or whichever latest version)
- If errors persist try: Install-Package or Update-Package Microsoft.EntityFrameworkCore.Tools (or whichever latest version)