我有一个控制器方法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()方法.
我已经成立了一个TeamCity的构建步骤,如所描述这里,做自动释放部署到我们的测试服务器.但它没有使用TeamCity中构建的最新nuget包.
使用案例:
Teamcity将创建版本为1.0.0.9的nuget包,包中的所有dll都是正确的版本,并且部署的Octopus版本具有相同的版本号,但章鱼使用的包是早期的包,例如1.0.0.5.
我在构建步骤中指定了--force参数,因此它应该使用最新的包,但事实并非如此.
如果我在Octopus中手动创建一个版本,并选择最新的软件包它正在100%工作
如果我遗失了某些东西,请有人告诉我.
提前致谢
我正在使用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()"进行相同的测试时,它就会通过.
希望这个例子可以帮助你理解我想要完成的事情.
我可以为继承我的基类的类设置规则.例如.Person : BaseClass,我想Person实现iSomeKindOfInterface,如果Person没有实现接口,则不允许继承BaseClass.
我知道这可以在通用基类中进行,您可以执行以下操作
public BaseClass<T>
where T : iSomeKinfOfInterface
Run Code Online (Sandbox Code Playgroud) [免责声明]:我想我已经阅读过关于此的每篇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) 我需要在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) 嗨,我是新的存储库模式.我希望得到关于我所遵循的方法的反馈.
要求:为当前登录的用户构建菜单.
我的解决方案
我创建了一个服务,控制器将调用该服务来获取菜单项.
public interface IApplicationHelperService
{
List<Menu> GetMenuForRoles();
}
Run Code Online (Sandbox Code Playgroud)服务的实现
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)我这里有一个旧系统,它将用户控件加载到一种面板中,然后当用户点击菜单项时,他们找到控件,然后他们调用BringToFront控件上的方法,使其成为面板中的可见用户控件.
我需要知道如何Front在面板中获得当前控件?
亲切的问候
是否可以使用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(..检查角色)
提前致谢
请帮我解决一下这个.我完全陷入困境.我有编码器块或什么的.
我有下表
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
c# ×6
sql-server ×2
unit-testing ×2
ado.net ×1
http-post ×1
inheritance ×1
linq ×1
nsubstitute ×1
pivot ×1
repository ×1
sql ×1
sum ×1
teamcity ×1
winforms ×1