我正在学习DDD,n-Tier,Repositoriess等.有人把我指向ASP.NET Boilerplate,我决定用它开始一个测试项目.我从来没有处理依赖注入,所以这对我来说都是新的,但它依赖于它使用ius Castle Windsor的DI依赖.现在,我创建了一个模型,并从这个模型中创建了一个接口.我还添加了一个服务.每当我启动应用程序时它会给我这个错误:
Can't create component 'TestApp.Services.MemberInfo.MemberAppService'
as it has dependencies to be satisfied.
'TestApp.Services.MemberInfo.MemberAppService' is waiting for the following dependencies:
- Service 'TestApp.Repositories.IMemberInfoRepository' which was not registered.
Run Code Online (Sandbox Code Playgroud)
我知道你必须注册服务和类似的东西,但阅读它在这里说的ABPs文档,http://www.aspnetboilerplate.com/Pages/Documents/Dependency-Injection#DocAbpInfrastructure,如果你添加App,它们会被自动注册到班级的名字.基本上,这是我的代码:
IMemberInfoRepository
public interface IMemberInfoRepository : IRepository<MemberInfo, Guid>
{
}
Run Code Online (Sandbox Code Playgroud)
MemberAppService
public class MemberAppService : IMemberAppService
{
private readonly Repositories.IMemberInfoRepository _memberInfoRepository;
public MemberAppService(Repositories.IMemberInfoRepository memberInfoRepository)
{
_memberInfoRepository = memberInfoRepository;
}
public void Create(MemberInfoDto input)
{
_memberInfoRepository.Insert(AutoMapper.Mapper.Map<m.MemberInfo>(input));
}
Run Code Online (Sandbox Code Playgroud)
IMemberAppService
public interface IMemberAppService :IApplicationService
{
void Create(MemberInfoDto input);
}
Run Code Online (Sandbox Code Playgroud)
所以,我在这里.卡住.我读了一些Castle Windsor官方文档,但因为这是我的第一个牛仔竞技表演,所以我坚持要做什么.任何其他事情将不胜感激.
我目前有一个非常大的查询,我缺少一个元素......我需要将数据切割成两个小数点(不需要舍入).我用谷歌搜索,但无法适应当前的查询.
SELECT
FechaDeSistema, Code,
CASE
WHEN DR_Socio = @SocioNum THEN Cantidad
END as Debit,
CASE
WHEN CR_Socio = @SocioNum THEN Cantidad
END AS Credit,
CASE
WHEN DR_Socio = @SocioNum THEN BalanceDebito
WHEN CR_Socio = @SocioNum THEN BalanceCredito
END AS Balance
FROM
Ledger
WHERE
(Debito_Cuenta = @Acct) OR
(Credito_Cuenta = @Ncct)
ORDER BY
FechaDeSistema DESC
Run Code Online (Sandbox Code Playgroud)
我基本上需要截断信用卡和借记卡"案例"(这就是你怎么说?)到两个小数点.我该怎么把它拉下来?提前致谢!
我正在构建一个通用存储库,除了更新之外,所有其他方法都可以工作.这是代码:
public void Update(T1 obj)
{
T2 item = Mapper.Map<T1, T2>(obj);
//db.Entry(item).State = EntityState.Modified;
//db.Set<T2>().Attach(item);
db.Entry<T2>(item).State = EntityState.Modified;
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用AutoMapper将我的业务模型映射到我的实体模型.在我的控制器中,我有以下内容:
userModel = userIDService.SelectByID(id);
userModel.Active = false;
userIDService.Update(userModel);
Run Code Online (Sandbox Code Playgroud)
该模型运行良好,并将Active值作为False.但它给了我以下错误:
Attaching an entity of type 'Data.UserIdentification' failed because
another entity of the same type already has the same primary key value.
This can happen when using the 'Attach' method or setting the state of
an entity to 'Unchanged' or 'Modified' if any entities in the graph
have conflicting key values. This …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序运行一个大循环,它读取数据,写入PDF和电子邮件文件,一举一动.有时,会出现错误,我必须回溯到导致错误的原因.基本上整个循环都在Try/Catch块中.有两个循环,基本上(伪代码):
try
// Loop 1
process 1
// Loop 2
process 2
catch
// Message box error
Run Code Online (Sandbox Code Playgroud)
有没有办法可以继续这个循环,只是跳过错误?也许保存一个例外的日志,以便我以后可以保存?
我的查询必须在特定日期之间获取客户的陈述和某些数据.出于测试目的,我创建了一些测试帐户并使用了完整查询.
现在我需要在日期之间进行过滤.这是我目前的查询:
SELECT
FechaDeSistema,
Code,
CASE
WHEN DR_Socio = @SocioNum THEN cast(Cantidad as decimal(19,2))
END as Debit,
CASE
WHEN CR_Socio = @SocioNum THEN cast(Cantidad as decimal(19,2))
END AS Credit,
CASE
WHEN DR_Socio = @SocioNum THEN cast(BalanceDebito as decimal(19,2))
WHEN CR_Socio = @SocioNum THEN cast(BalanceCredito as decimal(19,2))
END AS Balance
FROM Ledger
WHERE (Debito_Cuenta = @Acct)
OR (Credito_Cuenta = @Ncct)
AND (FechaDeSistema BETWEEN @Start AND @Final)
ORDER BY FechaDeSistema DESC";
Run Code Online (Sandbox Code Playgroud)
日期的参数由我设置的两个日历给出.但是,当我生成报告时,它仍然显示整个数据范围,从不在我选择的日期之间进行选择.我究竟做错了什么?
我正在开发一个流程,我基本上需要读取大量客户数据,对数据应用一些计算和流程,然后将它们保存到其他地方.我知道如何做我想做的事,但我不知道的是如何顺序读取数据(逐行).现在,我正在阅读帐户数量,所以我可以循环.这就是我所拥有的:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
conn.Open();
SqlCommand comm = new SqlCommand("SELECT COUNT(*) FROM Accounts WHERE ID = @ID AND Open = 1", conn);
comm.Parameters.AddWithValue("@ID", Session["ID"]);
Int32 count = (Int32)comm.ExecuteScalar();
//testing purposes
Label3.Text = count.ToString();
int i = 0;
while (i <= count)
{
//READ COMMAND HERE?
i = i + 1;
}
if (i == count)
{
//loading bar
UpdateProgress1.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
现在循环内部(我猜!)我需要执行一个代码来读取ID = @ID的每一行的数据,读取数据,使用一些进程(我知道如何工作)并更新数据(也知道如何去做这个).我只需要能够读取数据,我不知道如何.帮助将不胜感激!
我找到了一些关于回滚SQL Server查询的链接,但是在实现它时遇到了问题.由于我插入和更新的信息需要始终正确,我需要确保这是事先工作.现在,我已经有了一个try/catch块,我知道回滚会进入catch块.例如,这是我的代码:
using (SqlConnection conn5 = new SqlConnection(connString))
{
try
{
string query = "INSERT QUERY";
SqlCommand cmd = new SqlCommand(query, conn5);
// PARAMETERS
conn5.open();
cmd.ExecuteNonQuery();
}
catch
{
cmd.Rollback();
}
}
Run Code Online (Sandbox Code Playgroud)
我试过cmd.RollBack()但它只是在我的脸上吹了.
我有一个应用程序,可以读取数千行的文档.这个文本文件中有一个特定的子字符串,有时会像这个"12345"NNNNNNN一样开始.问题是每当C#读取该行时,它就会给我一些类似于"\ 12345 \"NNNNNN的东西.我已经尝试了string.Replace(@"\","")扩展,但它仍然返回相同的值,并没有替换任何令我惊讶的东西.这是代码:
maskList.AccountMask = @line.Substring(156, 40);
maskList.AccountMask = maskList.AccountMask.Replace(@"\", "");
Run Code Online (Sandbox Code Playgroud)
返回:"\"492200 \"NNNNNNNNNN
有什么建议?
我下载了 ASP Boilerplate 模板,并试图禁用某些动态 WebAPI 的创建。我阅读了https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API 上的文档, 但我找不到在模板中禁用它的位置。我正在使用 NET Core + Angular4 模板。