小编Cap*_*in0的帖子

发布后查看不更新

我有一个控制器方法CreateOrUpdate,这个方法应该将汽车保存到数据库然后正常返回.

public ActionResult CreateOrUpdate(int ID = 0)
{
    Car car = new Car(ID);
} 

[HttpPost]
public ActionResult CreateOrUpdate(Car car)
{
       car.Save();
       return View(car);
}
Run Code Online (Sandbox Code Playgroud)

在theCar.Save()方法中,我设置了汽车的id,在汽车保存后,无论数据库中的id是什么(当我使用SCOPE_IDENTITY()进行插入时,save方法运行良好,如果我在调用Save()之后调试并观察汽车的值,id是正确的.但是当渲染View时,视图中的ID为0.

谁能帮助我,告诉我为什么会这样.我不想在HTTP POST方法中更改视图的模型吗?如果保存成功,我应该重定向到原始的CreateOrUpdate()方法.

c# http-post asp.net-mvc-3

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

Teamcity的Octopus部署不使用最新的软件包

我已经成立了一个TeamCity的构建步骤,如所描述这里,做自动释放部署到我们的测试服务器.但它没有使用TeamCity中构建的最新nuget包.

使用案例:

Teamcity将创建版本为1.0.0.9的nuget包,包中的所有dll都是正确的版本,并且部署的Octopus版本具有相同的版本号,但章鱼使用的包是早期的包,例如1.0.0.5.

我在构建步骤中指定了--force参数,因此它应该使用最新的包,但事实并非如此.

如果我在Octopus中手动创建一个版本,并选择最新的软件包它正在100%工作

如果我遗失了某些东西,请有人告诉我.

提前致谢

teamcity octopus-deploy

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

在接收调用中将对象作为参数的NSubstitute

我正在使用NSubstitute进行单元测试.我需要检查一个对象是否发送到我正在测试的方法中的void方法.我只需要检查对象是否与其中一个属性为特定值一起发送.

例如.

///The object in question
public class Person
{
   public string Name { get; set; }
   public string Surname{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

两个简单的方法

public void NameStartsWithA(Person person)
{
  //do something to person when name starts with A
}

public void NameStartsWithB(Person person)
{
  //do something to person when name starts with B
}
Run Code Online (Sandbox Code Playgroud)

我正在编写测试的方法.

public void MethodBeingTested()
{
  var person = new Person() {Name = "Adrian",Surname="SomeSurname"};

  if(person.Name.StartsWith("A"))
    NameStartsWithA(person);
  else
    NameStartsWithB(person);
}
Run Code Online (Sandbox Code Playgroud)

如果人名以A开头,我需要检查,使用NSubstitute调用名称以A开头的"NameStartsWithA".

到目前为止我的单元测试看起来像这样

_someService.Received().NameStartsWithA(new Person(){Name="Adrian",Surname=Arg.Any<string>()});
Run Code Online (Sandbox Code Playgroud)

但是Nsubstitute说这个函数从未调用过,但是当我用"RecievedArgumentsAny()"进行相同的测试时,它就会通过.

希望这个例子可以帮助你理解我想要完成的事情.

unit-testing nsubstitute

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

继承类的规则

我可以为继承我的基类的类设置规则.例如.Person : BaseClass,我想Person实现iSomeKindOfInterface,如果Person没有实现接口,则不允许继承BaseClass.

我知道这可以在通用基类中进行,您可以执行以下操作

public BaseClass<T>
     where T : iSomeKinfOfInterface
Run Code Online (Sandbox Code Playgroud)

c# inheritance

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

SQL连接池超时

[免责声明]:我想我已经阅读过关于此的每篇stackoverflow帖子

我已经打破了很长一段时间了.我在asp.net web.api中遇到以下异常.

抛出异常:mscorlib.dll中的"System.InvalidOperationException"

其他信息:超时已过期.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.

大多数人建议我应该在我的应用程序中查找泄露的连接.这是我的代码.现在我确信我没有泄漏任何联系

public async Task<IEnumerable<string>> Get()
    {
        var ds = new DataSet();
        var constring = "Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;Max Pool Size=100";
        var asyncConnectionString = new SqlConnectionStringBuilder(constring)
        {
            AsynchronousProcessing = true
        }.ToString();


        using (var con = new SqlConnection(asyncConnectionString))
        using (var cmd = new SqlCommand("[dbo].[xxx]", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@x1", 1);
                cmd.Parameters.AddWithValue("@x2", "something");

                await con.OpenAsync();
                using (var rdr =await  cmd.ExecuteReaderAsync())
                {
                    if (rdr.HasRows)
                    {
                        ds.Load(rdr, LoadOption.OverwriteChanges, "MyTable");
                    }
                    rdr.Close();
                    con.Close();
                    ds.Dispose();
                }
            }
        //I know this looks …
Run Code Online (Sandbox Code Playgroud)

c# ado.net connection-pooling

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

递归SUM Sql Server

我需要在SQL Server中进行递归求和.我想要一个存储过程,我可以在其中传递父ID,然后返回链接到该父ID的所有子项(和子项的子项)的总计.

这是我到目前为止所拥有的

IF object_id('tempdb..#Averages') IS NOT NULL
BEGIN
   DROP TABLE #Averages
END


CREATE TABLE #Averages
(
ID INT PRIMARY KEY CLUSTERED IDENTITY(1,1),
Name VARCHAR(255),
ParentID int,
Value INT
)

INSERT INTO #Averages(Name,ParentID,Value)VALUES('Fred',NULL,1)
INSERT INTO #Averages(Name,ParentID,Value)VALUES('Bets',NULL,1)

INSERT INTO #Averages(Name,ParentID,Value)(SELECT 'Wynand',ID,21 FROM #Averages WHERE      Name = 'Fred'  )

INSERT INTO #Averages(Name,ParentID,Value)(SELECT 'Dewald',ID,27 FROM #Averages WHERE     Name = 'Fred'  )
INSERT INTO #Averages(Name,ParentID,Value)(SELECT 'Katelynn',ID,1 FROM #Averages WHERE Name = 'Dewald'  )

INSERT INTO #Averages(Name,ParentID,Value)(SELECT 'Jacques',ID,28 FROM #Averages WHERE Name = 'Bets'  ) …
Run Code Online (Sandbox Code Playgroud)

sql-server sum common-table-expression

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

常见项目的存储库模式

嗨,我是新的存储库模式.我希望得到关于我所遵循的方法的反馈.

要求:为当前登录的用户构建菜单.

我的解决方案

  1. 我创建了一个服务,控制器将调用该服务来获取菜单项.

    public interface IApplicationHelperService
    {
        List<Menu> GetMenuForRoles();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 服务的实现

    public class ApplicationHelperService : IApplicationHelperService
    {
        private readonly IMenuRepository _menuRepository; //this fecthes the entire menu from the datastore
        private readonly ICommonService _commonService; //this is a Service that contained common items eg. UserDetails, ApplicationName etc.
    
        public ApplicationHelperService(IMenuRepository menuRepository,ICommonService commonService)
        {
            this._menuRepository = menuRepository;
            this._commonService = commonService;
         }
    
         public List<Menu> ApplicationMenu
         {
            get
            {
               return _menuRepository.GetMenu(_commonService.ApplicationName);
            }
         }
    
         List<Menu> IApplicationHelperService.GetMenuForRoles()
         {
             return ApplicationMenu.Where(p => p.ParentID == null &&      p.IsInRole(_commonService.CurrentUser.Roles)).OrderBy(p => …
    Run Code Online (Sandbox Code Playgroud)

c# unit-testing repository

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

获得最重要的控制权

我这里有一个旧系统,它将用户控件加载到一种面板中,然后当用户点击菜单项时,他们找到控件,然后他们调用BringToFront控件上的方法,使其成为面板中的可见用户控件.

我需要知道如何Front在面板中获得当前控件?

亲切的问候

c# winforms

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

递归过滤Linq到对象

是否可以使用linq到对象递归过滤递归树中的所有项目.

这是我正在使用的模型.这是由另一个应用程序给我的

public class Menu
{
   public string Name{get;set;}
   public string Roles{get;set;}
   public List<Menu> Children{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

当用户登录我的应用程序时,我需要根据菜单项中指定的角色检查用户角色.我知道我可以编写一个递归方法,使用for循环检查它.

无论如何我在那里使用像'MenuList.Where(..检查角色)

提前致谢

c# linq

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

需要转动帮助

请帮我解决一下这个.我完全陷入困境.我有编码器块或什么的.

我有下表

ID     Name        Cost     Included
----   ----------  -------  ----------
1      Package1    10.00    Yes
2      Package2    20.00    No
3      Package3    20.00    Yes
Run Code Online (Sandbox Code Playgroud)

我想交叉显示这些信息,要显示如下例子,表格中会有更多列.

Type        Package1     Package2       Package3
-----       ------------ -----------    ----------
Name        Package1     Package2       Package3
Cost        10.00        20.00          30.00
Included    Yes          No             Yes
Run Code Online (Sandbox Code Playgroud)

sql sql-server pivot sql-server-2008 pivot-without-aggregate

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