小编sag*_*y36的帖子

无法返回类型IQueryable或IEnumerable

由于我无法从Linq到Entities查询返回这些类型中的任何一种,因此我坚持返回List.

从DB调用返回时(在单独的WCF服务或DLL中),Controller中的代码失败,因为dbcontext连接已关闭.

请注意以下代码.对于IEnumerable和IQueryable,由于以上描述,数据不会返回.

MVC控制器中的方法

// 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服务或DLL中的方法

// 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)

c# linq asp.net-mvc wcf entity-framework

5
推荐指数
1
解决办法
4658
查看次数

wcf测试客户端不支持此操作,因为它使用system.threading.tasks.task

我正在尝试在我的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)

.net c# wcf multithreading entity-framework

5
推荐指数
1
解决办法
2万
查看次数

在Web服务中运行同步方法

不幸的是,我不在城里,无法测试我需要向同事传达的东西,所以我希望得到一些帮助.

当我创建对Web服务的服务引用并检查异步复选框时,我注意到即使我的Web服务中包含所有异步方法,客户端上的代理或元数据也会创建相同方法的同步版本.

换句话说,我的Web服务上有一个名为GetCategoriesAsync的方法.即使没有为GetCategories编写的方法,客户端上的Reference.cs文件(在服务引用内)也会自动生成它.我也能够在WCF服务测试客户端中执行此方法.

我的问题是,我是否可以选择从我的客户端调用同步或异步方法,它将通过intellisense显示?显然,这将假设使用或不使用async,Taskawait关键字调用适当的方法.

c# wcf asynchronous web-services

5
推荐指数
1
解决办法
1062
查看次数

ADO.Net中的异步编程

以下链接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服务,但具备异步选项选中.

我的想法是否正确?

.net c# asp.net wcf asynchronous

5
推荐指数
1
解决办法
4397
查看次数

获取错误"当前上下文中不存在名称'配置'"

我正在使用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单词上.

c# configurationmanager

5
推荐指数
1
解决办法
4697
查看次数

Html.LabelFor语句未显示为指定值

我通过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)

asp.net-mvc form-helpers

4
推荐指数
1
解决办法
1万
查看次数

使用C#在app.config文件中包含文件名

是否可以将文件名包含在app.config文件中并在代码中使用它们?

例如,此代码完美地运行:

string folder = @"C:\CDR_FTP1\ttfiles_exported\";
Run Code Online (Sandbox Code Playgroud)

如果我想从app.config文件中获取上述值

  1. 有可能这样做吗?
  2. 语法是什么?

例如,在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)

.net c# xml filenames app-config

4
推荐指数
2
解决办法
2664
查看次数

TransactionScopeAsyncFlowOption和Isolation Level?

我在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

4
推荐指数
1
解决办法
1380
查看次数

同一行上的两列与bootstrap 3.2

我正在尝试使用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)

html css twitter-bootstrap

4
推荐指数
1
解决办法
9458
查看次数

动态设置Bootstrap 3模态标题

我有三个不同按钮的相同模态对话框.

但是,根据单击的按钮,我需要动态设置模式对话框的标题.

我认为使用jQuery在适当的javascript函数中设置标题会很简单.但是,在调试时,我可以看到在代码中相应地设置了标题,但是在显示模态之后,模态标题是空白的.

如何正确显示模态标题?

以下是HTML的相关部分:

<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">&times;</button>
                                                            <h4 class="modal-title" id="btnJournalVoucherEditGrid-label"></h4>
Run Code Online (Sandbox Code Playgroud)

这是JS

function onEditJournalVoucher(gdId, rwID)
{
  $('#btnJournalVoucherEditGrid-label').val("Edit Journal Voucher")
Run Code Online (Sandbox Code Playgroud)

html javascript jquery twitter-bootstrap

4
推荐指数
2
解决办法
3万
查看次数