【问题标题】:Return list web method返回列表 web 方法
【发布时间】:2015-12-30 00:39:58
【问题描述】:

我有 Web 服务和一个方法,它使用实体框架向我的表“客户”发出请求。

我想返回我的请求的结果:

public List<Customer> MyMethod(int id)
{
    Model model = new Model();
    List<Customer> customer = new List<Customer>();

    try
    {
         customer = model.Customer.Where(x => x.Id == id).ToList();
    }
    catch(Exception ex)
    {
         throw new System.NullReferenceException();
    }

    return customer;

}

在调试模式下,我填写了一个列表,但是当我通过 SoapUI 调用该方法时,我没有答案。

谢谢

【问题讨论】:

  • 所以在调试模式下,这会返回一个填充的List&lt;Customer&gt;,但它在正常模式下不起作用,这意味着它返回一个空的List&lt;Customer&gt;
  • 不,服务不返回任何内容。我在 SoapUI 上有一个空答案的信封

标签: c# wcf webmethod


【解决方案1】:

我的完整代码:

类客户(由 EF 生成):

[Table("Customer")]
public partial class Customer
{
    public int Id { get; set; }

    [StringLength(50)]
    public string Name { get; set; }

    public int? Adress_id { get; set; }

    public virtual Adress Adress { get; set; }
}

类地址(由 EF 生成):

[Table("Adress")]
public partial class Adress
{
    public Adress()
    {
        Customer = new HashSet<Customer>();
    }

    public int Id { get; set; }

    [Column("Adress")]
    [StringLength(255)]
    public string Adress1 { get; set; }

    [StringLength(50)]
    public string Town { get; set; }

    public virtual ICollection<Customer> Customer{ get; set; }
}

我的网络方法:

[WebMethod]
public Customer MyMethod(int id)
{
    Model model = new Model();
    Customer customer = new Customer();

    try
    {
        customer = model.Customer.Where(x => x.Name == id).First();
    }
    catch (Exception ex)
    {
        throw new System.NullReferenceException(ex.Message, ex.InnerException);
    }

    return customer;
}

【讨论】:

    【解决方案2】:

    请参考以下代码:

    public List<UserInfo> GetAllUserInfoDetailes()
            {
                List<UserInfo> user = new List<UserInfo>();
                using (Model1 pubs = new Model1())
                {
                    var userId = (from p in pubs.TB_UserInfo select p);
                    foreach (TB_UserInfo singleUser in userId)
                    {
                        UserInfo a = new UserInfo();
                        a.EUserId = singleUser.User_Id;               
                        a.EUser_Name = singleUser.User_Name;
                        a.EAlias = singleUser.Alias;
                        a.EPassword = singleUser.Password;
                        a.EState = singleUser.State;
                        a.ECurrentPrevious = singleUser.CurrentPrevious;
                        a.EEmail = singleUser.Email;
                        a.EReportDutyTime = singleUser.ReportdutyTime;
                        a.ETeam_Id = singleUser.Team_Id;
                        a.ELogin_Time = DateTime.Now;
                        user.Add(a);
                    }
                }
                return user;
            }
    

    然后就可以得到结果了。

    【讨论】:

      【解决方案3】:

      我的类 Customer 中有一个虚拟属性,它对应于另一个表(外键)。如果我删除这个虚拟财产,我有一个回应,但我想归还联合

      【讨论】:

        【解决方案4】:

        将 WebMethod 属性添加到您的方法中:

            [WebMethod]
            public List<Customer> MyMethod(int id)
        {....}
        

        【讨论】:

        • 我还没有回复。但是,如果我在我的班级中删除虚拟属性,我会有一个响应
        猜你喜欢
        • 2012-07-22
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 2014-11-01
        • 2018-02-13
        相关资源
        最近更新 更多