想象一个常见的场景,这是我遇到的更简单的版本.我实际上有几层进一步筑巢......
但这就是场景
主题包含列表类别包含列表产品包含列表
我的控制器提供了一个完全填充的主题,包含该主题的所有类别,此类别中的产品及其订单.
订单集合有一个名为Quantity(以及许多其他)的属性需要可编辑.
@model ViewModels.MyViewModels.Theme
@Html.LabelFor(Model.Theme.name)
@foreach (var category in Model.Theme)
{
@Html.LabelFor(category.name)
@foreach(var product in theme.Products)
{
@Html.LabelFor(product.name)
@foreach(var order in product.Orders)
{
@Html.TextBoxFor(order.Quantity)
@Html.TextAreaFor(order.Note)
@Html.EditorFor(order.DateRequestedDeliveryFor)
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用lambda然后我似乎只获得对顶级Model对象的引用,"Theme"不是foreach循环中的那些.
是我试图在那里做甚至可能还是我高估或误解了什么是可能的?
有了上面我在TextboxFor,EditorFor等上得到了一个错误
CS0411:无法从用法中推断出方法'System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数.尝试显式指定类型参数.
谢谢.
无论我把它混合在一起,都会给我带来错误.我有一种感觉,我错过了一些明显的东西,因为我不断收到这些错误.
在模型生成期间检测到一个或多个验证错误:
System.Data.Edm.EdmAssociationType :: Multiplicity与关系'Venue_Courses'中Role'Venue_Courses_Source'中的引用约束冲突.由于"从属角色"中的所有属性都是不可为空的,因此"主体角色"的多重性必须为"1".
System.Data.Edm.EdmAssociationEnd :: Multiplicity在关系'Venue_Courses'中的角色'Venue_Courses_Target'中无效.由于"从属角色"是指关键属性,因此从属角色的多重性的上限必须为1.
一个课程只能有一个场地,许多课程都可以使用场地
public class Course
{
[Key]
public virtual int Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public int VenueId { get; set; }
public virtual Venue Venue { get; set; }
}
public class Venue
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Course> Courses { get; set; }
} …Run Code Online (Sandbox Code Playgroud) 在.netCore库中,我想连接到Oracle数据库.我有什么方法可以做到吗?
我已经在另一个SO帖子上尝试了这些建议,但它不起作用,也许从那以后就删除了?正如你在我的project.json中看到的,我正在尝试使用"net461".
我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client.我也知道Oracle尚未购买.netCore连接器.但即使在那里,我也无法让它工作,它很难获得System.Data,每当我尝试添加它时都会出错.
我的project.json看起来像这样:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Oracle.ManagedDataAccess": "12.1.24160719",
},
"frameworks": {
"netstandard1.6": {
"imports": [
"dnxcore50",
"net461"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我此刻尝试这样做的方式.
using Oracle.ManagedDataAccess.Client;
public class MyRepository
{
public string GetServerVersion()
{
var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection");
var serverVersion = _db.ServerVersion;
return serverVersion;
}
}
Run Code Online (Sandbox Code Playgroud)
但是上面没有编译,因为它没有System.Data,我正在努力导入.
我没有根据任何特定的方式做到这一点,我只想在这个时间点找到最合理的选择.
我知道这已被问过很多次了,并相信我,我一直在寻找和尝试其中许多下午半天,但仍然无法超越这个.
我正在尝试通过Web服务提交一些表单内容(也可能包含附件),但是当我尝试附加除小文件之外的任何内容时,仍然会收到以下错误.
我的完整错误是:
格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:scChildForm时出错 .InnerException消息是'反序列化MashForms.Models.SCChildrenForm类型的对象时出错.读取XML数据时已超出最大数组长度配额(16384).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxArrayLength属性,可以增加此配额.第1行,第41713位.'.有关更多详细信息,请参阅InnerException.
无论我多少尝试在WCF服务和Web客户端的web.config中覆盖该值,它仍然会报告为最大错误和随后的错误.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<!--<httpRuntime maxRequestLength="409600" executionTimeout="300" />-->
</system.web>
<connectionStrings>
<add name="MashFormsContext" connectionString="Data Source=ServerName;Initial Catalog=MashFormsDev;Persist Security Info=True;User ID=UserName;Password=Password" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<serviceTimeouts transactionTimeout="05:05:00" />
<serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" maxConcurrentInstances="2147483647" />
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!--<serviceMetadata httpsGetEnabled="true"/>-->
<!-- To receive exception …Run Code Online (Sandbox Code Playgroud) 费用不仅在SELECT中使用DateAdd函数,还在WHERE中使用; 或者使用Sub Query,它最初会返回比我需要的更多的数据,但是可以在数据库上再次使用DateAdd函数进行过滤.
执行计划似乎暗示它们是相同的.我想知道哪个更有效率?
DECLARE @DateFrom DateTime
SET @DateFrom = '2011-05-27'
DECLARE @DateTo DateTime
SET @DateTo = '2011-06-27'
SELECT id, name,
dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM')) as itsm_requiredbyx
FROM tablename
WHERE dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM'))
BETWEEN @DateFrom AND @DateTo
ORDER BY itsm_requiredbyx desc
---------------------------------------------------------------------------------------------
SELECT *
FROM
(
select id, name,
dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM')) as itsm_requiredbyx
from tablename
) …Run Code Online (Sandbox Code Playgroud) 如何在我的WCF服务上显示DisplayName/Name属性?
这是WCF服务中的对象.
[DataContract]
public class Person
{
[DataMember]
public int PersonId { get; set; }
[DataMember]
[Display(Name = "Name")]
public string Name { get; set; }
[DataMember]
[DisplayName("Date of Birth")]
public DateTime? DateOfBirth { get; set; }
[DataMember]
public string Gender { get; set; }
[DataMember]
public string Telephone { get; set; }
[DataMember]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望描述性名称显示在我基于WCF服务创建的表单上.我怎样才能做到这一点?
在MVC4 View上显示代码
<div id="online">
@Html.EditorFor(m => m.Name)
@Html.EditorFor(m => m.Telephone)
@Html.EditorFor(m => m.Fax)
@Html.EditorFor(m => m.Email)
</div>
Run Code Online (Sandbox Code Playgroud) 我有以下(我在CodeFirst中使用过):
public class MyForm
{
public int MyFormId { get; set; }
//Many Form Properties
public virtual ICollection<AuditItem> AuditItems { get; set; }
}
public class AuditItem
{
public int AuditItemId { get; set; }
public int MyFormId { get; set; }
public IAppUser User { get; set; }
public string ActionByUserStr { get; set; }
public string ActionByUserDisplayName { get; set; }
public DateTime DateOfAction { get; set; }
public string TypeOfAction { get; set; }
public int Step …Run Code Online (Sandbox Code Playgroud) 我在分层网格中添加子记录时遇到问题.它不会从网格中的父级传递HeaderId.
任何人都可以发现问题,或者我是否尝试做一些不可能的事情?谢谢.
这是控制器动作:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult BillDetail_Create(BillDetail billDetail, int billHeaderId)
{
if (billHeaderId == 0)
{
ModelState.AddModelError("billHeaderID", "add bill header first");
}
if (billDetail != null && ModelState.IsValid)
{
var target = new BillDetail
{
Category = billDetail.Category,
Description = billDetail.Description,
Amount = billDetail.Amount,
BillHeaderId = billHeaderId,
BillDetailId = SessionBillDetails.Max(d => d.BillDetailId) + 1
};
//Get next Id in sequence
billDetail.BillDetailId = target.BillDetailId;
SessionBillDetails.Add(target);
}
return Json(new[] { billDetail }.ToDataSourceResult(new DataSourceRequest(), ModelState));
}
Run Code Online (Sandbox Code Playgroud)
以下是观点:
@(Html.Kendo().Grid<BillHeader>()
.Name("BillHeaders")
.Columns(columns =>
{
columns.Bound(h …Run Code Online (Sandbox Code Playgroud) 我想在更新子网格记录时更新父网格,这可能吗?如果是这样,任何人都可以提供任何建议吗?
首先,我不确定哪个事件最适合在子网格上使用.我希望触发子网格的CRUD操作,然后再次加载父网格的内容,最好是通过Ajax.
下面是我的网格:
@{
ViewBag.Title = "Bills: Parent/Child";
}
<h2>Bills Index</h2>
@(Html.Kendo().Grid<BillParent>()
.Name("BillParentsGrid")
.Columns(columns =>
{
columns.Bound(h => h.Category);
columns.Bound(h => h.Description);
columns.Bound(h => h.Amount);
columns.Command(command =>
{
command.Edit();
}).Width(95);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(h => h.BillId);
model.Field(h => h.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillParents_Read", "Bill"))
.Update(update => update.Action("BillParent_Update", "Bill"))
)
.Events(events => events.DataBound("dataBound"))
.ClientDetailTemplateId("BillChildren")
)
<script id="BillChildren" type="text/kendo-tmpl">
@(Html.Kendo().Grid<BillChild>()
.Name("BillChildren_#=BillId#")
.Columns(columns =>
{
columns.Bound(d => d.BillId).Width(50);
columns.Bound(d => d.Description).Width(150);
columns.Bound(d => d.Amount).Width(80);
columns.Command(command …Run Code Online (Sandbox Code Playgroud) c# ×7
kendo-grid ×2
kendo-ui ×2
wcf ×2
wcf-binding ×2
.net ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
linq ×1
oracle ×1
performance ×1
razor ×1
sql ×1
sql-server ×1
t-sql ×1
view ×1
web-services ×1