我已经阅读了许多与此类似的其他问题 - 但对Nhibernate来说是新手,他们似乎都没有回答我的问题,为什么Inhibernate会抛出"找到对集合的共享引用:Order.ShippingAddress.Items"到以下代码:
VendorOrderNotificationAcknowledgement ICheckoutVendorService.SendOrderNotification(VendorOrderNotification request)
{
OrderRepository repo = new OrderRepository();
var order =(AbstractOrder) repo.FindByCartId(request.OrderNotification.CartOrderId);
ShippingAddress billingAddress = order.ShippingAddresses[0];
var itemsFromDb = billingAddress.Items;
order.ClearAllShippingAddresses();
wcfFactory.UpdateOrder(order); //NO ERROR THROWN HERE!
ShippingAddress shippingAddress = orderHelper.CreateShippingAddress(request.ShippingDetails);
shippingAddress.Items = itemsFromDb;
order.AddShippingAddress(shippingAddress);
order.SourceCode = _sourceCode;
order.TaxAmount = 0;
order.GiftCertificateAmount = 0;
order.Status = StatusCode.Approved;
order.CreatedAt = request.OrderNotification.OrderTime.Year >2010
? request.OrderNotification.OrderTime
: DateTime.Now;
order.PurchasedDate=
request.OrderNotification.OrderTime.Year>2010
? request.OrderNotification.OrderTime
: DateTime.Now;
order.UpdatedAt = DateTime.Now;
if (request.OrderNotification.OrderCharges != null)
{
order.ShippingAmount = request.OrderNotification.OrderCharges.Shipping;
order.TaxAmount = request.OrderNotification.OrderCharges.DutyAndTaxes;
}
else …Run Code Online (Sandbox Code Playgroud) 我试图使用c#,实体框架 - 数据库优先和mvc来编写/读取ms sql数据库的纬度和经度.
问题是lat/long只显示2位小数,即使它们在数据库中是正确的.数据库的字段为数字(18,6).
我修改了上下文文件,如下所示:
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LATITUDE).HasPrecision(18, 6);
modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LONGITUDE).HasPrecision(18, 6);
}
Run Code Online (Sandbox Code Playgroud)
2个问题 - 我是否应该在上下文文件中修改OnModelCreating - 即使它警告更改可能会在重新生成时丢失,如何使代码不会舍入小数?
任何帮助赞赏!
我必须在视图中从控制器方法获取值以写入一些javascript.在网页中,它就像<%= functionName()%>一样简单.有没有办法在MVC中执行此操作.我无法使用该模型,因为javascript必须在页面加载时可用.任何见解都表示赞赏.