我试图TimeSpan在SQL Server 2008 R2中存储.Net .
EF Code First似乎建议它应该存储为Time(7)SQL中的一个.
但是TimeSpan.Net可以处理比24小时更长的时间.
TimeSpan在SQL服务器中处理存储.Net的最佳方法是什么?
有时,我的老板会向我们抱怨:
为什么我们需要这么长的时间来实现一个功能?
实际上,该功能之前已经在另一个应用程序中实现,您只需要从那里复制和粘贴代码.成本应该很低.
这真的是一个难题,因为在我看来,复制和粘贴代码并不是一件简单的事情.
你有什么理由向你的非技术老板解释这个吗?
我试图将TimeSpan Code First属性映射到SQL服务器.Code First似乎在SQL中将其创建为Time(7).但是.Net中的TimeSpan可以处理超过24小时的更长时间,并且我需要存储超过24小时的事件长度.使用Code First处理此问题的最佳方法是什么?
Visual Studio 2012是否支持使用特定的Web.config转换运行解决方案而无需发布?我们使用web.config更改发布时的客户端设置,并希望在本地测试它们.
我试图在遗留代码库中调试一些问题.我认为是由于抛出异常引起的,因为无法从Autofac容器中解析某些内容.但是我觉得异常被埋没在某个地方,我没有看到根本原因.我确信从控制器请求的东西要么找不到,要么可以找到的东西有一个无法满足的依赖.没有任何保护条款等,所以我认为我得到一个空参考问题.为了尝试调试这个,我希望看到容器中找不到的所有请求.
无论如何都要记录Autofac无法解决的所有请求?或者只是将所有请求记录到容器中?
在我们的MVC应用程序中,作为参数的所有读取操作都采用实现以下内容的查询:
public interface IQuery<out TResponse> { }
Run Code Online (Sandbox Code Playgroud)
在该操作中,查询被传递到总线,该总线定位处理程序并返回视图模型.所以控制器现在看起来像这样:
public ActionResult Edit(DetailsQuery query)
{
var model = mediator.Request(query);
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
实际上只是将查询传递给我们的调解器并返回结果.我们有数百个看起来像这样的动作.有一些奇怪的动作可以做一些有条件的事情(我会保留原样),但其余部分则是一次又一次的样板.我们有超过一百个不同的查询
我怎样才能将其重构为更明确的内容?我想移动到模型视图查询处理程序而不是样板控制器操作,只需将查询交给总线并将模型返回到View.
我应该在MVC中看到哪些扩展点?有效地而不是必须编写动作处理程序 - 只需要一些自动方式将强类型查询连接在一起并获取正确的ViewModel.
如果我能?我是不是该?我只是不喜欢看到数百个看起来都一样的动作.
我们正在使用Entity Framework Code First和Foreign Key关系.我们正在调查处理从应用程序中的实体ICollection中删除对象的方法.
当我们有一个具有子关系的实体时,我们可以使用Add方法将对象直接添加到他们的ICollection中.现在,当您使用删除时,您会收到错误
发生System.InvalidOperationException消息=操作失败:无法更改关系,因为一个或多个外键属性不可为空.当对关系进行更改时,相关的外键属性将设置为空值.如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象.
我理解这是因为集合上的Remove仅通过归零外键来删除关系.我们想在我们的实体中编写业务逻辑并允许删除.
所以从它的Repostiory中取出root实体,例如OrderRepository的Order然后调用实体的一些特定方法,例如,Order.AddOrderline(Orderline orderline)这将OrderLine添加到Ordersvirtual ICollection<OrderLine> OrderLines
但是,我们无法编写代码,Order.CancelOrderline(int orderLineId)因为只是从ICollection中删除会导致存储更改出错.
似乎没有任何方法可以通过操纵对象集合来实现这一点.显然我们可以直接从Context中删除.但是我想把它作为实体的一部分.我们可以在Entity Framework的SaveChanges事件中清除没有外键的某些实体吗?显然需要告诉EF如果它们具有空外键,可以删除哪些实体.
我们目前正在使用存储库模式,因此控制器无法访问上下文.我显然可以在Order存储库上使用OrderLine存储库或删除OrderLine方法.然而,只是想知道是否有可能在实体上编写代码而不引用持久性机制.
思考?我们这一切都错了吗?其他ORM是否允许您从Child Collections中删除?
persistence entity-framework repository-pattern entity-framework-4
我希望使用CloudConfigurationManager,以便我可以利用Azure配置文件.我想使用连接字符串我在Cloud.cscfg中添加了一个字符串来配置实体框架上下文.
我正在配置我的上下文
public DomainContext()
: base("ContextConnectionString")
Run Code Online (Sandbox Code Playgroud)
这是从Web.config获取ContextConnectionString
我将Context Constructor更改为this
public DomainContext()
: base(CloudConfigurationManager.GetSetting("ContextConnectionString"))
Run Code Online (Sandbox Code Playgroud)
它现在有效.
是否有更优雅的方式告诉我的上下文构造函数首先使用Azure cscfg?
无论如何,让Resharper导航到特定类型的通用接口的具体实现.
例如ICommandHandler<T>,找到具体实施?我可以让Resharper显示所有实现,ICommandHandler但不允许我轻松地实现类型T的实现.我们有数百个处理程序,导航越来越慢.
我们正在使用Resharper 7.1
更新
例子包括:
public class AddStockRequestLineItemCommandHandler : ICommandHandler<AddStockRequestLineItemCommand>
public class RemoveStockRequestLineItemCommandHandler : ICommandHandler<RemoveStockRequestLineItemCommand>
public class StockRequestFufillingUpdateCommandHandler : ICommandHandler<StockRequestFufilingUpdateCommand>
Run Code Online (Sandbox Code Playgroud)
在MVC控制器构造函数中的用法如:
public StockRequestController( ICommandHandler<RemoveStockRequestLineItemCommand> stockRequestLineItemRemoveHandler)
{
this.stockRequestLineItemRemoveHandler = stockRequestLineItemRemoveHandler;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够点击ICommandHandler<RemoveStockRequestLineItemCommand>并转到实施课程RemoveStockRequestLineItemCommandHandler
无论如何,Automapper是否会忽略某种类型的所有属性?我们正在尝试通过验证Automapper映射来提高代码的质量,但是必须.Ignore()为所有IEnumerable<SelectListItem>总是手动创建的代码设置,这会产生摩擦并减慢开发速度.
有任何想法吗?
创建映射后可能的想法:
var existingMaps = Mapper.GetAllTypeMaps();
foreach (var property in existingMaps)
{
foreach (var propertyInfo in property.DestinationType.GetProperties())
{
if (propertyInfo.PropertyType == typeof(List<SelectListItem>) || propertyInfo.PropertyType == typeof(IEnumerable<SelectListItem>))
{
property.FindOrCreatePropertyMapFor(new PropertyAccessor(propertyInfo)).Ignore();
}
}
}
Run Code Online (Sandbox Code Playgroud) sql-server ×2
.net ×1
architecture ×1
asp.net-mvc ×1
autofac ×1
automapper ×1
azure ×1
c# ×1
code-first ×1
copy-paste ×1
cqrs ×1
dry ×1
logging ×1
persistence ×1
resharper ×1
timespan ×1
web-config ×1