为了回应Slauma对我在Windows XP上运行使用EF的应用程序问题的回答,我 将我的应用程序从Entity Framework 5.0转换回使用Entity Framework 5.0和目标框架.NET 4.0(也称为Entity Framework 4.4)
但是我遇到以下错误;
System.Data.Entity.DbSet<MyEntity> does not contain a definition for AddOrUpdate
and no extension method of a type System.Data.Entity.DbSet<MyEntity> accepting a
first argument of type System.Data.Entity.DbSet<MyEntity> could be found.
(Are you missing a using directive or assembly reference )
Run Code Online (Sandbox Code Playgroud)
我已经尝试搜索此错误消息的片段,但没有取得多大成功.奇怪的是,在这个微软链接中甚至没有提到4.4甚至 没有EF4.4的SO标签
我发现Azure中的应用程序注册非常混乱.在我的问题中, AuthClientId和Application Id结果是一样的,为什么要使用两个名字呢?
这种命名选择背后的逻辑是什么?
[更新]
从Joy的链接到我看到的词汇表
应用程序ID(客户端ID)
"Azure AD向应用程序注册发出唯一标识符,用于标识特定应用程序和相关配置.此应用程序ID(客户端ID)在执行身份验证请求时使用,并在开发时提供给身份验证库."
我看到客户端ID链接到一个网页在ietf.org 其中规定
"2.2.客户标识符
授权服务器向注册客户端发出客户端标识符 - 表示客户端提供的注册信息的唯一字符串.
我想这个比喻都是关于供应商,客户,产品关系.供应商是Active Directory,产品是认证,客户是应用注册.
作为客户的"应用程序注册"的概念,我很难习惯.我寻求帮助理解单词的选择.
多租户应用程序的想法并不真正适用于"客户端"的比喻.
[更新]此链接是最有用但最具权威性的链接复制
1.1.角色
OAuth定义了四个角色:
资源所有者能够授予对受保护资源的访问权限的实体.当资源所有者是一个人时,它被称为最终用户.
资源服务器托管受保护资源的服务器,能够使用访问令牌接受和响应受保护资源请求.
客户端代表资源所有者及其授权进行受保护资源请求的应用程序.术语"客户端"并不暗示任何特定的实现特征(例如,应用程序是在服务器,桌面还是其他设备上执行).
授权服务器成功验证资源所有者并获取授权后,服务器向客户端发出访问令牌.
授权服务器和资源服务器之间的交互超出了本规范的范围.授权服务器可以是与资源服务器相同的服务器或单独的实体.单个授权服务器可以发出由多个资源服务器接受的访问令牌.
但它仍然令人困惑.
"代表资源所有者及其授权进行受保护资源请求的应用程序"
"代表资源所有者提出受保护的资源请求"是什么意思?
[更新]
在研究了Wayne Yang的回答后,我在Slack的oauth页面上找到了这张照片
在 DevOps UI 中,我创建了一个 PR 将我的分支合并到 master 中。但是 UI 指示存在冲突。
我想通过接受编辑的分支来解决冲突。然而,用户界面中似乎没有任何东西可以做到这一点。
我查看了这个问题,其中提到 DevOps 没有此功能。然而它似乎如此接近,以至于我觉得我可能只是错过了一些东西。
[更新]
我一圈圈地赞同和赞同并发表评论。最后我注意到完整组合右侧的汉堡菜单。
我尝试重新启动合并,但它似乎没有做任何事情。
我建立了一个构建管道来创建Nuget软件包并将其发布到工件中的提要中。
我能够成功使用Feed。
但是,当我再次运行管道,导致程序包再次发布时,我无法成功更新使用项目。
即使我可以在软件包管理器中看到正确的新版本号(Visual Studio->工具-> Nuget软件包管理器->管理Nuget软件包以获取解决方案)
单击安装时出现错误
Package '<mypackagename with version number>' is not found in the following primary source
<correct feed nuget/v3/index.json> Please verify all your online package sources are available (OR) package id, version are specified correctly.
Run Code Online (Sandbox Code Playgroud) 我的aspnetcore docker项目构建,但是当我单击Docker按钮(或按F5)运行时,我得到了
Severity Code Description Project File Line Suppression State
Error MSB4018 The "PrepareForLaunch" task failed unexpectedly.
Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1627893588_default" with the default driver
Building pswebapi
Service 'pswebapi' failed to build: Get https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1: unauthorized: incorrect username or password.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting ---> Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1627893588_default" with the default driver
Building pswebapi
Service 'pswebapi' failed to build: Get https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1: unauthorized: incorrect username or password
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.DockerComposeClient.<ExecuteAsync>d__18.MoveNext()
--- End of …
Run Code Online (Sandbox Code Playgroud) 我的解决方案包含 Framework 4.8 项目、.Net Standard 2.1 项目和 .net6 项目。它已经运行了几周,没有出现任何问题。
\n今天构建管道开始失败并出现错误
\n\n\n##[错误]nuget 命令失败,退出代码(1) 和错误(错误 NU5049:不支持 SDK 样式项目的 pack 命令,请使用\ndotnet pack 或 msbuild -t:pack 来打包此项目。您可以通过将\n\xe2\x80\x98NUGET_ENABLE_LEGACY_CSPROJ_PACK\xe2\x80\x99 环境变量设置为 \xe2\x80\x98true\xe2\x80\x99 来覆盖此行为。\n错误 NU5000: 无法构建包。
\n
我尝试编辑 YAML 将命令从 pack 更改为 dotnet pack,但出现值不接受错误。
\n\n[更新]
\n我试图确切地了解如何更正语法。\n我尝试在任务栏中输入 dotnet 并得到以下内容\n
我尝试了 .Net Core 但它插入的命令有 -task:DotNetCoreCLI@2\n 这也不起作用。
\ndotnet pack 的 YAML 是什么?
\n我的 YAML 如下
\ntrigger:\n- master\n\npool:\n vmImage: \'windows-2022\'\n\nvariables:\n solution: \'**/*.sln\'\n buildPlatform: \'Any CPU\'\n buildConfiguration: \'Release\'\n Major: \'2\'\n Minor: \'0\'\n …
Run Code Online (Sandbox Code Playgroud) 我初始迁移中的代码如下
Run Code Online (Sandbox Code Playgroud)CreateTable( "dbo.Sites", c => new { Id = c.Int(nullable: false, identity: true), Description = c.String(maxLength: 450) }) .PrimaryKey(t => t.Id);
为了使Description字段是唯一的,我将以下内容添加到UP方法的末尾
CreateIndex("dbo.Sites","Description",唯一:true);
后来我决定要求描述字段.
新迁移会产生以下更改
AlterColumn("dbo.Sites","Description",c => c.String(nullable:false,maxLength:450));
但是,当此更改尝试运行时,我收到错误
ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.
我能够使用分析器隔离SQL行,如
ALTER TABLE [dbo].[Sites] ALTER COLUMN [描述] nvarchar NOT NULL
当我在Management Studio中运行它时,会出现以下错误
消息5074,级别16,状态1,行1索引'IX_Description'取决于列'描述'.消息4922,级别16,状态9,行1 ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.
如何获取迁移代码以删除索引,然后更改更改列,然后重新构建索引?
我正在使用SQL Server 2008 R2
我正在尝试编写一个易于理解的DBContext
类,它采用自定义连接字符串,可以运行迁移,并且我允许使用包管理器生成迁移.
我好像在四处走动.
我已经能够使用对我来说非常糟糕的代码来使用它.我在关于连接字符串和迁移的这个问题的答案中记录了这一点.
Radek的答案看起来比我的好,但是我发现当我实现它然后尝试在Package Manager中创建一个迁移时,我得到了消息
目标上下文'DataLayer.Context'不可构造.添加默认构造函数或提供IDbContextFactory的实现.
DataLayer.Context
我的上下文类在哪里.
我不想提供一个实现IDbContextFactory
(并且Radek的答案似乎表明它不需要)
更新:
如果我包含一个没有参数的构造函数,我可以生成一个迁移.例如
public Context() : base("ConnectionStringName") { }
Run Code Online (Sandbox Code Playgroud)
对于我的上下文创建,我在app.config中传递连接字符串的名称
public Context(string connString) : base(connString)
{
Database.SetInitializer(new CustomInitializer());
Database.Initialize(true);
}
Run Code Online (Sandbox Code Playgroud)
最后,我既可以生成迁移,也可以为用户选择的数据库运行迁移.
但是:当我删除数据库然后运行我的应用程序时,我遇到了问题.
我正在使用的初始化代码,来自上面的链接
public class CustomInitializer : IDatabaseInitializer<Context>
{
public void InitializeDatabase(Context context)
{
try
{
if (!context.Database.Exists())
{
context.Database.Create();
}
else
{
if (!context.Database.CompatibleWithModel(false))
{
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Configuration.TargetDatabase =
new DbConnectionInfo(context.Database.Connection.ConnectionString);
IEnumerable<string> migrations = migrator.GetPendingMigrations();
foreach …
Run Code Online (Sandbox Code Playgroud) 我已经将我的项目移动到一台新机器,并且无法访问旧的机器本地存储的名为SBD.Common的旧nuget包.
我想从项目中卸载软件包当我使用Manage Nuget Packages作为解决方案时,我可以看到软件包已安装但在此源中不可用.
当我单击卸载按钮时出现错误
An error occured while trying to restore the packages" Unable to find version '1.0.0' of 'SBD.Common'
c:\Program files(x86)\Microsoft SDKS\NugetPackages\:Package 'SBD.Common.1.0.0' is not found on source 'C:\Program Files(x86)\Microsoft SDKs\NuGetPackages\'
https://api.nuget.org/v3/index.json:Package 'SBD.Common.1.0.0' is not found
Run Code Online (Sandbox Code Playgroud)
如何告诉我的项目我不想在没有访问包的情况下恢复此包?
这是我在C:\ Users\MyName\AppData\Roaming\NuGet的Nuget.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
<disabledPackageSources>
<add key="Microsoft and .NET" value="true" />
</disabledPackageSources>
<packageRestore>
<add key="enabled" value="False" />
<add key="automatic" value="False" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我正在使用Nuget版本3.4.4.1321
到目前为止的总结答案:如果 csproj.user 文件存在,则表单和控件仅在设计器中打开。
问题故事:
我有两个控件,它们都继承自基本控件。但是解决方案资源管理器中缺少控制图标
良好的控制源始于
public partial class UniTabMaterialsControl : UnitabBaseControl
{
public UniTabMaterialsControl()
{
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
不良控制源始于
public partial class UniTabMaterialsControl : UnitabBaseControl
{
public UniTabMaterialsControl()
{
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
基本控制类是
public class UnitabBaseControl : UserControl
{
}
Run Code Online (Sandbox Code Playgroud)
我尝试关闭并重新打开 Visual Studio
[更新]
我添加了一个新的用户控件并将其设置为也继承自 UnitabBaseControl ,奇怪的是行为得到了纠正。
然后我能够删除新控件并保持正确的行为
Git 显示 UnitabBaseControl.cs 发生了变化,但除了 UserControl 文本的颜色之外我没有看到什么变化
然后我对整个解决方案进行了新的克隆。这次,从 UnitabBaseControl 继承的所有控件都显示了不正确的行为
[更新]
现在我在表格方面遇到了同样的问题
using System.Windows.Forms;
namespace SBD.VivSnap.UI
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
和
using System.Windows.Forms; …
Run Code Online (Sandbox Code Playgroud) azure-devops ×3
c# ×2
.net ×1
asp.net-core ×1
azure ×1
code-first ×1
csproj-user ×1
docker ×1
dockerhub ×1
migration ×1
nuget ×1
oauth-2.0 ×1
winforms ×1