在包含许多不同类型的子对象的大对象的初始化中......
我有一个返回KeyValuePair<string, object>. 我想在初始化 a 时调用它Dictionary<string, object>,如下所示:
AdditionalProperties = new Dictionary<string,object>(ams.GetKVP(AvaloqTypes.Person.PersonDocm.CountryId))
Run Code Online (Sandbox Code Playgroud)
这会出现编译错误“无法从 KeyValuePair 转换为 IDictionary”
我可以按如下方式解决此问题:
AdditionalProperties = new Dictionary<string,object>()
{
{ ams.GetKVP(AvaloqTypes.Person.PersonDocm.DocmItem).Key,
ams.GetKVP(AvaloqTypes.Person.PersonDocm.DocmItem).Value
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这意味着该GetKVP方法被调用两次。
有没有不涉及改变GetKVP方法的更好的解决方案?
我有一个 devops yaml 管道,它运行 DotNetCoreCLI@2 任务来恢复、构建和测试。
如果一个或多个测试失败,我希望管道继续并发布为 DevOps 版本做好准备的输出。
最初,如果测试失败,整个管道执行将报告“构建失败”。在构建管道 yaml 的顶部添加以下内容后:
jobs:
- job: Build
continueOnError: true
Run Code Online (Sandbox Code Playgroud)
我现在得到“构建部分成功”。
但是,当我检查管道执行摘要页面时,我发现有 0 个工件:
即使测试失败,如何使管道发布?
为了完整起见,完整的 yaml 如下
stages:
- stage: Build
jobs:
- job: Build
continueOnError: true
pool:
name: Hosted Windows 2019 with VS2019
demands:
- msbuild
- visualstudio
variables:
solution: '**/*.sln'
projects: '**/Interfaces.Avaloq.Presentation.AzureFunctions.csproj'
unitTestProjects: '**/*Testing.Unit*/*.csproj'
integrationTestProjects: '**/*Testing.Integration*/*.csproj'
buildPlatform: 'Any CPU'
buildConfiguration: 'Debug'
steps:
- script: |
- task: DotNetCoreCLI@2
displayName: Restore Functions
inputs:
command: restore
projects: '$(projects)'
feedsToUse: config
nugetConfigPath: …Run Code Online (Sandbox Code Playgroud) yaml .net-core azure-devops azure-pipelines azure-pipelines-yaml
我需要将格式化日期分配给数据流中的列.我添加了一个派生形状,并为新列输入了以下表达式 - 派生列="添加为新列":
"BBD" + SUBSTRING((DT_WSTR,4)DATEADD("Day",30,GETDATE()),1,4) +
SUBSTRING((DT_WSTR,2)DATEADD("Day",30,GETDATE()),6,2) +
SUBSTRING((DT_WSTR,2)DATEADD("Day",30,GETDATE()),9,2)
Run Code Online (Sandbox Code Playgroud)
问题是派生列转换编辑器自动分配数据类型Unicode string[DT_WSTR]和长度"7".但是,字符串的长度为11,因此每次抛出以下异常:
[Best Before Date [112]] Error: The "component "Best Before Date" (112)" failed
because truncation occurred, and the truncation row disposition on "output column
"Comments" (132)" specifies failure on truncation. A truncation error occurred
on the specified object of the specified component.
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么编辑坚持7长度?我似乎无法改变这一点.
非常感谢,
抢.
我有一个DetailsView与TextBox绑定到DateTime列.列的值以"dd/mm/yyyy hh:mm:ss"格式显示.我需要它以"yyyy/mm/dd"格式显示.虽然我有最好的方法可能是格式化DataBound事件中的字符串.问题是,我似乎无法找到将字符串格式化为日期的方法.String.Format不会这样做.如果我将字符串作为DateTime,那么我可以使用DateTime.Format方法.我可以通过解析字符串的各种元素来创建一个datetime变量,但我不禁想到必须有一个更简单的方法吗?
谢谢
抢.
我有一个MVC 5应用程序.我想使用标准的aspnet.identity提供程序来启用用户通过标准\ Account视图登录.但是,我还需要连接到第三方数据库,并且也希望首先使用EF代码.
我从Scott Allen Pluralsight获取的主数据库的上下文.我不知道"ApplicationUser"类为什么或继续从IdentityUser继承,但它在他的视频和我创建的以前的网站中工作.它看起来如下:
namespace ESBAMPortal.DataLayer
{
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
}
class PortalContext : IdentityDbContext<ApplicationUser>, ESBAMPortal.DataLayer.IPortalContext
{
public PortalContext()
: base("ESBamPortalConString")
{
this.Configuration.LazyLoadingEnabled = false;
}
public virtual DbSet<DomainClasses.Portal> Portal {get; set;}
}
}
Run Code Online (Sandbox Code Playgroud)
第三方数据库的上下文如下:
namespace ESBAMPortal.DataLayer
{
public class ESBContext : DbContext, ESBAMPortal.DataLayer.IESBContext
{
public ESBContext()
: base("ESBExceptionConString")
{
this.Configuration.LazyLoadingEnabled = …Run Code Online (Sandbox Code Playgroud) 我有一个用VS2015开发的asp.net mvc应用程序.
在Global.asax.cs的Application_Start方法中,调用包含以下内容的方法:
Mapper.Initialize(cfg => cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>());
Mapper.Initialize(cfg => cfg.CreateMap<Models.FaultVmRec, Domain.ESB.Fault>());
Run Code Online (Sandbox Code Playgroud)
我已经检查过这是通过添加断点来执行的.
在我的控制器中,我有以下内容:
faultVmRec = Mapper.Map<Fault, FaultVmRec>(item);
Run Code Online (Sandbox Code Playgroud)
在这一行,我得到了例外:
{"缺少类型映射配置或不支持的映射.\ r \n\r \nMapping类型:\ r \nFault - > FaultVmRec\r \nLGSS.Unit4.BamPortal.Domain.ESB.Fault - > LGSS.Unit4.BamPortal.Website .Models.FaultVmRec\r \n\r \n目标路径:\ r \nFaultVmRec\r \n\r \nSource值:\ r \nSystem.Data.Entity.DynamicProxies.Fault_805BF7128A26886D33A8989DFA212C8E378EDADE588B0922B23ECFE7F697D907"}
但是,如果我粘贴以在执行映射之前显式初始化映射,如下所示:
Mapper.Initialize(cfg => cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>());
faultVmRec = Mapper.Map<Fault, FaultVmRec>(item);
Run Code Online (Sandbox Code Playgroud)
然后它工作正常!
有人知道我哪里出错吗?
我有一个由 HTTP 调用触发的 dotnet 5 Azure 函数(dotnet-isolated)。
该函数将由不同的 Azure 函数应用程序调用,我想使用 Azure AD 保护目标并使用“客户端凭据”OAuth2 流。
我在以下位置找到了一个适合我的场景的优秀示例:Microsoft GitHub Sample
我的问题是,该示例使用 WebApi 应用程序作为服务。这可以访问 HttpContext 对象,使用 Microsft.Identity.Web 程序集中名为“ValidateAppRole”的扩展方法
我的 Azure 函数确实有一个 HttpRequestData 类型的参数。它有一个包含键值对的 headers 属性。这些密钥之一称为“授权”,其值是 Azure AD 提供的访问令牌。我已通过 jwt.ms 运行此令牌,并可以确认“角色”集合包含我需要验证的自定义角色。所以我知道所需的信息已经存在;我只是不知道如何以编程方式检查它。
由于点网隔离的 Azure 函数似乎无法访问 HttpContext 对象。如何进行与以下内容等效的检查?
HttpContext.ValidateAppRole("CustomRoleName");
Run Code Online (Sandbox Code Playgroud) oauth-2.0 azure-active-directory azure-functions microsoft-identity-web
我有以下型号:
public List<string> Results { get; set; }
public List<string> ClubcardNumbers { get; set; }
public bool FindCards {get; set;}
public bool FindDuplicates { get; set; }
public bool AllocatedVouchers { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的控制器中有以下操作:
public ActionResult ImportExcel()
{
if (Request.Files["XlFileUpload"].ContentLength > 0)
{
string extension = System.IO.Path.GetExtension(Request.Files["XlFileUpload"].FileName);
string path1 = string.Format("{0}/{1}", Server.MapPath("~/Content/Upload"), Request.Files["XlFileUpload"].FileName);
if (System.IO.File.Exists(path1))
System.IO.File.Delete(path1);
Request.Files["XlFileUpload"].SaveAs(path1);
Session.Add("XlFileUpload", path1);
}
if (Request.Files["DataFileUpload"].ContentLength > 0)
{
string extension = System.IO.Path.GetExtension(Request.Files["DataFileUpload"].FileName);
string path1 = string.Format("{0}/{1}", Server.MapPath("~/Content/Upload"), Request.Files["DataFileUpload"].FileName);
if (System.IO.File.Exists(path1))
System.IO.File.Delete(path1);
Request.Files["DataFileUpload"].SaveAs(path1); …Run Code Online (Sandbox Code Playgroud) 我有以下观点:
@model IEnumerable<YIS2.Models.Testimonial>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div id="Testimonials">
<h2>Our Testimonials</h2>
@foreach (var item in Model)
{
<blockquote>
<p>@item.Content</p>
<p>@item.AuthorName</p>
</blockquote>
}
</div>
<div id="SubmitTestimonial">
<h2>Submit Testimonial</h2>
@using (Html.BeginForm("NewTestimonial", "Testimonial", FormMethod.Post))
{
@Html.EditorFor(m => Model.AuthorName)
@Html.EditorFor(m => Model.AuthorEmail)
@Html.EditorFor(m => Model.Content)
<input type="submit" id="submitTestimonial" />
}
Run Code Online (Sandbox Code Playgroud)
我需要模型为IEnumerable,因此我可以遍历内容以显示以前保存的推荐.问题是我在语句m => Model.x上出错,因为Model是IEnumerable.
什么是最好的修复方法?
我有一个 asp.net core 网站,我想使用 devops (VSTS) 管道将其部署到本地 IIS 服务器。
构建管道工作正常,但我在配置发布管道时遇到了问题。
流程如下:
我能够在浏览器会话中从目标服务器浏览到 devops 站点 ( https://companydomain.visualstudio.com )
我是否正确理解需要在每台目标服务器上安装代理?有什么想法为什么无法连接吗?我猜这是一些公司代理/防火墙问题,但我不知道如何访问任何诊断或日志。我本以为通过 443 访问 .visualstudio.com 就足够了?
c# ×3
asp.net-mvc ×2
azure-devops ×2
.net-core ×1
automapper ×1
azure-pipelines-release-pipeline ×1
datetime ×1
dbcontext ×1
model ×1
oauth-2.0 ×1
razor ×1
ssis ×1
yaml ×1