注意:在底部澄清了我的一些问题.
我想知道是否可能有一个(理智的)模式来处理旧主机系统的请求/响应?在下面的示例中,IQ是请求,RSIQ是响应.在第一个示例中,我正在请求所有帐户代码的列表,在第二个请求中,我要求每个帐户代码的关闭日期.由于这些仅通过序数位置链接,因此很容易将数据拉入结构化数据类.在这种情况下,每个响应代表多个记录.
在第二个例子中,我正在为单个记录请求几位信息.在这种情况下,每个响应代表一个记录和一些数据点.
这是客户端发送到服务器以从数据库请求特定信息的消息.
The inquiry message has this general format:
IQ~<msg id>~A<unit#>~B<device type>~D<acct#>~F<password>~G<file>~H<hierarchicrecordpath>~J<field>
**One field from many records**:
Beginning with first share (ordinal zero) on Account 101 return all the Share ID fields in first
message then get all Close Dates in second message. IDs and Close Dates correspond
positionally within the two responses.
IQ~1~A0~BVENDOR~D101~F7777~HSHARE=0~JID=ALL
RSIQ~1~K0~JID=0000~JID=0003~JID=0004~JID=0005~JID=0025~JID=0050
IQ~1~A0~BVENDOR~D101~F7777~HSHARE=0~JCLOSEDATE=ALL
RSIQ~1~K0~JCLOSEDATE=00000000~JCLOSEDATE=20030601~JCLOSEDATE=00000000~JCLOSEDATE=00000000~JCLOSEDATE=00000000~JCLOSEDATE=00000000
**Many fields from one record**:
Using the previous requests get additional information from …
Run Code Online (Sandbox Code Playgroud) 我有几个(最终超过 100 个)小型 DLL 项目都基于 MediatR。这意味着使用的接口只是 IMediatR 接口(IRequest<TResult>, IRequestHandler<IRequest<TResult>, TResult>)。由于其中很多没有 UI 并且是通过另一个 DLL 的编排调用的,我想我可以创建一个 Autofac 容器项目 (DLL),注册所有微服务,然后在运行时在另一个应用程序中解决我需要的问题消耗我的容器。到现在为止还挺好。
我遇到问题的地方是每个 CQRS 处理程序的注册。现在,虽然所有东西的范围都很小,但它们被内联定义如下:
namespace My.Core.Container
{
public class CoreDependencies
{
#region Properties
public IMediator Mediator { get; private set; }
public IContainer Container { get; private set; }
private static ContainerBuilder _builder;
#endregion
#region Constructor
public CoreDependencies()
{
_builder = new ContainerBuilder();
// register MediatR types...
_builder.RegisterSource(new ContravariantRegistrationSource());
_builder.RegisterAssemblyTypes(typeof(IMediator).GetTypeInfo().Assembly).AsImplementedInterfaces();
_builder.Register<SingleInstanceFactory>(ctx =>
{
var c = ctx.Resolve<IComponentContext>();
return t => c.Resolve(t);
}); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试做一些简单而琐碎的事情-至少我认为。
我正在尝试编写一个基类,该基类可以由我启动的每个微服务项目继承。该基类的重点是测试从HTTP一直到SQL的连通性。PROD中未启用它。
这是(简单的)基类之一:
public class DevTestControllerBase: ApiControllerBase
{
public DevTestControllerBase(IHostingEnvironment env, IConfiguration configuration = null, IMediator mediator = null) : base(env, configuration, mediator)
{
}
[HttpGet]
public IActionResult Get()
{
var response = Mediator.Send(new QueryGet());
return Ok(response.Result);
}
[HttpGet("{id}", Name = "Get")]
public IActionResult Get(Guid id)
{
var response = Mediator.Send(new QueryGetById(id));
return Ok(response.Result);
}
[HttpPost]
public async Task<IActionResult> Post([FromBody]DevTestModelBinding value)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
var response = await Mediator.Send(new CommandPost(value));
return Created("Get", new { …
Run Code Online (Sandbox Code Playgroud) 我在这里疯了.我查看了以下条目,但没有一个能纠正我看到的异常行为:
我也看过了,并确认了我的设置:http: //www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx
这是我的代码(ASMX代码背后):
namespace RivWorks.Web.Services
{
/// <summary>
/// Summary description for Negotiate
/// </summary>
[WebService(Namespace = "http://rivworks.com/webservices/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[ScriptService]
public class Negotiate : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public RivWorks.Data.Objects.rivProduct GetSetup(string jsonInput)
{
// Deserialize the input and get all the data we need...
// TODO: …
Run Code Online (Sandbox Code Playgroud) 当您有 80(+/-) 列可供选择时,您如何确定哪一列是罪魁祸首?使用 .Net Core (netcoreapp2.2) 和 EF Core 2.2.4。
拿起一些现有的代码,并尝试跟踪失败的列。但是,它不起作用。我在这里和其他地方查看了数十个示例,但没有找到在 EF Core 2.x 中执行此操作的方法。
public int GetColumnMaxLength(string table, EntityEntry entityEntry)
{
// Just a rough to get the right data - always returns 0 for the moment...
int result = 0;
var modelContext = entityEntry.Context;
var entityType = modelContext.Model.FindEntityType(table); // THIS IS ALWAYS NULL!
if (entityType != null)
{
// Table info
var tableName = entityType.Relational().TableName;
var tableSchema = entityType.Relational().Schema;
// Column info
foreach (var property in entityType.GetProperties())
{ …
Run Code Online (Sandbox Code Playgroud) 当期待记录集(> = 1记录)时,如何检查该0记录情况?
例如:
RivWorks.Model.FeedStoreReadOnly store = new RivWorks.Model.FeedStoreReadOnly(AppSettings.FeedAutosEntities_connString, AppSettings.FeedAutosEntities_metadata, AppSettings.FeedAutosEntities_providerName);
RivWorks.Model.NegotiationAutos.Entities _dbFeed = store.ReadOnlyEntities();
var companyDetails = from a in _dbFeed.ClientClientMap where a.CompanyID == CompanyId select a;
return companyDetails.ToList();
Run Code Online (Sandbox Code Playgroud)
当它返回时,它在ToList()上出错,因为没有满足WHERE子句的记录.那么,检查0条记录的正确方法是什么,以及那时推荐的回报是什么?
根据以下答案添加:
if (companyDetails.Count() > 0)
return companyDetails.ToList();
else
{
List<RivWorks.Model.NegotiationAutos.ClientClientMap> ret = new List<RivWorks.Model.NegotiationAutos.ClientClientMap>();
ret.Add(companyDetails.FirstOrDefault());
return ret;
}
Run Code Online (Sandbox Code Playgroud)
尚未测试,但(逻辑上)似乎有效.想知道是否有更简单的方法.
注意:
我明白了.DB运行的SQL帐户未被DBA授予正确的权限集.我们更改了新表/视图上的所有GRANT语句,现在它正在运行.
我仍然不确定正确答案是什么.我倾向于创建一个空白(新)记录并添加到列表中,以便我们收到列表的人有东西可以显示(如果没有别的话可以编辑)...
我正在设计一个小网站,我希望能够在计算机和移动设备上浏览.我知道我可以使用以下内容轻松地为大多数移动设备换出我的CSS:
<link rel="stylesheet" type="text/css" media="handheld" href="foo_mobile.css">
<link rel="stylesheet" type="text/css" media="screen" href="foo_screen.css">
Run Code Online (Sandbox Code Playgroud)
但是,我真正想要实现的是根据浏览器类型(屏幕与手持设备 - 加iPhone)交换_layout.cshtml.
我已经看到很多网站将移动设备重定向到像m.xyzCorp.com这样的子域,但是如果可能的话我希望避免这种情况.
那里有示例代码或教程吗?我的Google-foo今天很弱.
TIA
Scenario: Change a member to ABC 60 days before anniversary date
Given Repeat When+Then for each of the following IDs:
| ID |
| 0047619101 |
| 0080762602 |
| 0186741901 |
| 0311285102 |
| 0570130101 |
| 0725968201 |
| 0780265749 |
| 0780265750 |
| 0780951340 |
| 0780962551 |
#-----------------------------------------------------------------------
When these events occur:
| WorkflowEventType | WorkflowEntryPoint |
| ABC | Status Change |
Then these commands are executed:
| command name |
| TerminateWorkflow …
Run Code Online (Sandbox Code Playgroud) 我在这里遇到了一些困难.我的主要目标是能够在C#和Entity Framework中使用它,而我们的指令来自于远离存储过程.
我有2个表:一个外部参照和一个(Celko)树表.
/**
** Table [dbo].[EntityXref]
**/
IF EXISTS(SELECT * FROM sys.tables WHERE name = N'EntityXref' AND type = N'U')
DROP TABLE [dbo].[EntityXref]
GO
CREATE TABLE dbo.[EntityXref]
( Id BIGINT IDENTITY(1,1) NOT NULL
, EntityId INT NOT NULL
, EntityTypeId INT NOT NULL
, ChildEntityId INT NOT NULL
, ChildEntityTypeId INT NOT NULL
, CONSTRAINT [PK_EntityXref] PRIMARY KEY NONCLUSTERED ([Id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] …
Run Code Online (Sandbox Code Playgroud) 我有一个接口定义为:
namespace RivWorks.Interfaces.DataContracts
{
public interface IProduct
{
[XmlElement]
[DataMember(Name = "ID", Order = 0)]
Guid ProductID { get; set; }
[XmlElement]
[DataMember(Name = "altID", Order = 1)]
long alternateProductID { get; set; }
[XmlElement]
[DataMember(Name = "CompanyId", Order = 2)]
Guid CompanyId { get; set; }
...
[XmlElement]
[DataMember(Name = "buttonPositionCSS", Order = 14)]
string buttonPositionCSS { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个具体的实现,如:
namespace RivWorks.Model.Objects
{
[DataContract(Name = "Product", Namespace = "http://rivworks.com/DataContracts/2009/01/15")]
public class Product : IProduct
{
#region …
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×2
asmx ×1
asp.net-core ×1
autofac ×1
interface ×1
json ×1
master-pages ×1
mediatr ×1
routes ×1
specflow ×1
sql ×1
sql-server ×1
wcf ×1
web-services ×1