由于我无法从Linq到Entities查询返回这些类型中的任何一种,因此我坚持返回List.
从DB调用返回时(在单独的WCF服务或DLL中),Controller中的代码失败,因为dbcontext连接已关闭.
请注意以下代码.对于IEnumerable和IQueryable,由于以上描述,数据不会返回.
// Controller
IEnumerable<ProjectDescription> projectDdl = db.GetProjectDropDownList().AsEnumerable();
// Error coming back because dbcontext connection was closed.
ViewBag.ProjectsCust = new SelectList(projectDdl, "ProjectId", "Name");
Run Code Online (Sandbox Code Playgroud)
// WCF Service or DLL
public IEnumerable<ProjectDescription> GetProjectDropDownList()
{
try
{
//IQueryable<ProjectDescription> project = null;
using (YeagerTechEntities DbContext = new YeagerTechEntities())
{
DbContext.Configuration.ProxyCreationEnabled = false;
DbContext.Database.Connection.Open();
IEnumerable<ProjectDescription> project = DbContext.Projects.Select(s =>
new ProjectDescription()
{
ProjectID = s.ProjectID,
Description = s.Description
}
);
return project;
}
}
catch (Exception ex)
{
throw ex; …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的WCF服务中创建一个异步方法,但我收到上述主题错误消息.我只想返回一个类别列表.
为了清楚起见,最后在上面的错误消息中添加以下内容:YeagerTechModel.Category []
除了此方法(旁边有一个红色的"X")之外,成功添加了wcfclient服务.实际上,所有方法(在wcf服务客户端中)都期望一个关联的异步方法(红色"X")与其他常规同步方法一起使用.
我知道如何使用WCF,但我不是它的专家.为了使这个功能正常,我需要做什么?
我正在使用VisualStudio 2013的完整版本,并使用4.5.1框架进行项目.我也在使用EntityFramework 6.
我的服务合同包含以下命名空间.
using System.Threading.Tasks;
Run Code Online (Sandbox Code Playgroud)
我的经营合同如下.
[OperationContract(Name="GetCategoriesAsync")]
Task<List<Category>> GetCategoriesAsync();
Run Code Online (Sandbox Code Playgroud)
我的DataContract如下:
namespace YeagerTechModel
{
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Collections.Generic;
[Serializable, DataContract(IsReference = true)]
public partial class Category
{
public Category()
{
this.Projects = new HashSet<Project>();
}
[DataMember]
public short CategoryID { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public virtual ICollection<Project> Projects { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我的Web服务中的方法如下.请注意,我没有任何设计时编译错误,并且可以成功构建解决方案:
public async Task<List<Category>> GetCategoriesAsync()
{
try …Run Code Online (Sandbox Code Playgroud) 不幸的是,我不在城里,无法测试我需要向同事传达的东西,所以我希望得到一些帮助.
当我创建对Web服务的服务引用并检查异步复选框时,我注意到即使我的Web服务中包含所有异步方法,客户端上的代理或元数据也会创建相同方法的同步版本.
换句话说,我的Web服务上有一个名为GetCategoriesAsync的方法.即使没有为GetCategories编写的方法,客户端上的Reference.cs文件(在服务引用内)也会自动生成它.我也能够在WCF服务测试客户端中执行此方法.
我的问题是,我是否可以选择从我的客户端调用同步或异步方法,它将通过intellisense显示?显然,这将假设使用或不使用async,Task和await关键字调用适当的方法.
以下链接http://msdn.microsoft.com/en-us/library/hh211418(v=vs.110).aspx解释了4.5 .Net框架的新异步编程功能,这在很大程度上是相当直接的前瞻性.
但是,我只是想确定一些事情......
如果我使用的一个SqlDataReader Web服务和创建客户端通过代理服务器产生异步方法(通过服务引用对话框选项)来使用Web服务上的服务的参考,我很想像我不会需要使用上面链接中提到的方法.
相反,我会在调用该Web服务方法时适当地使用客户端上的async,Task和await关键字
自从在"Web服务"对话框中检查这些选项后,它将自动为ADO.Net调用创建异步方法调用.
因此,如果您在Web服务中有一个名为GetCategories的方法,它将自动在Web服务中创建一个名为GetCategoriesAsync的异步调用,该调用可以从客户端调用.同样,不需要将异步属性放在Web服务方法调用上 ; 只为这是一个ADO.Net呼叫不使用Web服务或其中之一是使用Web服务,但不具备异步选项选中.
我的想法是否正确?
我正在使用Visual Studio 2013与.NET Framework 4.5.
我已System.Configuration将该项目作为参考.
我还在类中包含了一个using语句:
using System.Configuration;
Run Code Online (Sandbox Code Playgroud)
但是,以下行仍然给出了上述主题错误.我如何摆脱错误?
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["WarrantySqlConnection"].ToString()))
Run Code Online (Sandbox Code Playgroud)
编译时错误出现在ConfigurationManager单词上.
我通过Html.LabelFor帮助器在foreach语句中显示一个GuarantorName.
但是,我没有得到预期的结果.
它不是显示GuarantorName的实际值,而是简单地打印如下:Label值表示实际的字段名称是:GuarantorName,而我需要该字段的名称的实际值(如"Bill Yeager"),我在调试过程中验证了各种不同的名字.
在调试过程中,我可以在列表中看到我在集合中有实际的名字.
我怎么能做到这一点?
以下是我在守则中的观点:
@foreach (var item in Model.Guarantors)
{
<td>
@Html.CheckBoxFor(model => item.isChecked)
@Html.LabelFor(model => item.GuarantorName)
</td>
}
Run Code Online (Sandbox Code Playgroud)
如果我试试这个,我会收到以下错误:
@Html.DisplayFor(model => item.GuarantorFirstName + item.GuarantorLastName)
Run Code Online (Sandbox Code Playgroud)
异常详细信息:System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.
Source Error:
Line 95: <td>
Line 96: @Html.CheckBoxFor(model => item.isChecked)
Line 97: @Html.DisplayFor(model => item.GuarantorFirstName + item.GuarantorLastName)
Line 98: </td>
Line 99: }
Run Code Online (Sandbox Code Playgroud) 是否可以将文件名包含在app.config文件中并在代码中使用它们?
例如,此代码完美地运行:
string folder = @"C:\CDR_FTP1\ttfiles_exported\";
Run Code Online (Sandbox Code Playgroud)
如果我想从app.config文件中获取上述值
例如,在app.config中,我可以尝试这样的事情:
<add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />
Run Code Online (Sandbox Code Playgroud)
我无法添加"@",因为它会给我以下错误:
"The character '@', hexadecimla value 0x40 is illegal at the beginning of an XML name."
Run Code Online (Sandbox Code Playgroud)
如果我尝试在我的代码中使用它,如下所示,它很好,但是我需要在哪里以及如何坚持使用"@"让应用程序正确读取它?
string folder = ConfigurationSettings.AppSettings["InputDir"];
Run Code Online (Sandbox Code Playgroud) 我在WCF服务中使用Entity Framework 6.1并希望用READ UNCOMMITTED隔离级别包围我的SELECT查询,因为其他批量更新将插入到我正在阅读的表中,并且不希望锁定那些批量更新当在表上执行READ时.这基本上模拟了SELECT WITH NOLOCK.
此代码也以异步方式使用.因此,我不能简单地使用TransacactionScope.请注意,我也在使用.Net 4.5.1框架.
我可以将TransactionScope上的隔离级别设置为ReadUncommitted,但TransactionScopeOption的默认值为ReadCommitted.我没有看到任何改变隔离级别的方法.
有没有办法改变隔离级别?如果我无法设置隔离级别,我的查询是否可以在上述情况下运行.
实际上,如果我不能将隔离级别设置为"NOLOCK",则我甚至不需要包含TransactionScopeAsyncFlowOption.
wcf entity-framework asynchronous-wcf-call isolation-level c#-5.0
我正在尝试使用Bootstrap 3.2在同一行上放置两列,但是没有任何成功.
我想要的格式是这样的:BeginDate:txbox1 EndDate:txtbox2
我的代码如下,但我知道这是不正确的.
我非常感谢能够在Bootstrap中获得解决方案的人.
<label for="dteBeginDate" class="col-md-2 control-label">Begin Date:</label>
<div class="col-md-10">
<input type="date" id="dteBeginDate">
</div>
<label for="dteEndDate" class="col-md-2 control-label">End Date:</label>
<div class="col-md-10">
<input type="date" id="dteEndDate">
</div>
Run Code Online (Sandbox Code Playgroud) 我有三个不同按钮的相同模态对话框.
但是,根据单击的按钮,我需要动态设置模式对话框的标题.
我认为使用jQuery在适当的javascript函数中设置标题会很简单.但是,在调试时,我可以看到在代码中相应地设置了标题,但是在显示模态之后,模态标题是空白的.
如何正确显示模态标题?
<div class="modal fade" id="btnJournalVoucherEditGrid" tabindex="-1" role="dialog" aria-labelledby="btnJournalVoucherEditGrid-label" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="btnJournalVoucherEditGrid-label"></h4>
Run Code Online (Sandbox Code Playgroud)
function onEditJournalVoucher(gdId, rwID)
{
$('#btnJournalVoucherEditGrid-label').val("Edit Journal Voucher")
Run Code Online (Sandbox Code Playgroud) c# ×6
wcf ×5
.net ×3
asp.net-mvc ×2
asynchronous ×2
html ×2
app-config ×1
asp.net ×1
c#-5.0 ×1
css ×1
filenames ×1
form-helpers ×1
javascript ×1
jquery ×1
linq ×1
web-services ×1
xml ×1