小编Lor*_*lix的帖子

无法创建组件,因为它具有要满足的依赖性

我正在学习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官方文档,但因为这是我的第一个牛仔竞技表演,所以我坚持要做什么.任何其他事情将不胜感激.

c# asp.net-mvc castle-windsor asp.net-boilerplate

8
推荐指数
1
解决办法
8893
查看次数

SQL Query截断为两个小数点?

我目前有一个非常大的查询,我缺少一个元素......我需要将数据切割成两个小数点(不需要舍入).我用谷歌搜索,但无法适应当前的查询.

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)

我基本上需要截断信用卡和借记卡"案例"(这就是你怎么说?)到两个小数点.我该怎么把它拉下来?提前致谢!

sql t-sql sql-server

7
推荐指数
2
解决办法
4万
查看次数

更新通用存储库中的实体时出错

我正在构建一个通用存储库,除了更新之外,所有其他方法都可以工作.这是代码:

 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)

c# asp.net-mvc automapper

5
推荐指数
1
解决办法
1442
查看次数

如何在出错后继续循环?

我有一个应用程序运行一个大循环,它读取数据,写入PDF和​​电子邮件文件,一举一动.有时,会出现错误,我必须回溯到导致错误的原因.基本上整个循环都在Try/Catch块中.有两个循环,基本上(伪代码):

try
  // Loop 1
  process 1
    // Loop 2
    process 2
catch
  // Message box error
Run Code Online (Sandbox Code Playgroud)

有没有办法可以继续这个循环,只是跳过错误?也许保存一个例外的日志,以便我以后可以保存?

c# .net-4.5

2
推荐指数
1
解决办法
3933
查看次数

在日期之间搜索的正确方法

我的查询必须在特定日期之间获取客户的陈述和某些数据.出于测试目的,我创建了一些测试帐户并使用了完整查询.

现在我需要在日期之间进行过滤.这是我目前的查询:

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)

日期的参数由我设置的两个日历给出.但是,当我生成报告时,它仍然显示整个数据范围,从不在我选择的日期之间进行选择.我究竟做错了什么?

c# sql-server

1
推荐指数
1
解决办法
206
查看次数

按顺序从SQL行读取数据

我正在开发一个流程,我基本上需要读取大量客户数据,对数据应用一些计算和流程,然后将它们保存到其他地方.我知道如何做我想做的事,但我不知道的是如何顺序读取数据(逐行).现在,我正在阅读帐户数量,所以我可以循环.这就是我所拥有的:

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的每一行的数据,读取数据,使用一些进程(我知道如何工作)并更新数据(也知道如何去做这个).我只需要能够读取数据,我不知道如何.帮助将不胜感激!

c# sql-server asp.net

1
推荐指数
1
解决办法
952
查看次数

回滚SQL Server查询

我找到了一些关于回滚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()但它只是在我的脸上吹了.

c# sql-server asp.net

1
推荐指数
1
解决办法
326
查看次数

从文本文件中读取一行会返回不需要的斜杠

我有一个应用程序,可以读取数千行的文档.这个文本文件中有一个特定的子字符串,有时会像这个"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

有什么建议?

c#

1
推荐指数
1
解决办法
1135
查看次数

禁用某些服务的动态 Web api

我下载了 ASP Boilerplate 模板,并试图禁用某些动态 WebAPI 的创建。我阅读了https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API 上的文档, 但我找不到在模板中禁用它的位置。我正在使用 NET Core + Angular4 模板。

aspnetboilerplate

0
推荐指数
1
解决办法
1111
查看次数