gpt4 book ai didi

c# - Visual Studio 2013 Rdlc - 如何显示导航属性的值

转载 作者:行者123 更新时间:2023-11-30 23:34:06 29 4
gpt4 key购买 nike

我正在使用 Entity-Framework(Code First)在 visual studio 2013 上构建一个 WPF 应用程序。

我有一个 Order 类,它有一个 Customer 的虚拟属性。

public class Order
{
public int OrderId { get; set; }
public DateTime OrderDate { get; set;}
public virtual Customer Customer { get; set; }
}

public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string DocumentNumber { get; set; }
public DateTime BirthDate { get; set; }
}

我正在尝试在报告公式中显示客户的姓名。我试过:

=First(Fields!Customer.Value.Name, "MyDataSet")
=First(Fields!Customer.Name.Value, "MyDataSet")

=Fields!Customer.Value.Name
=Fields!Customer.Name.Value

它只是在该字段上显示#Error。订单中的其他字段已正确显示。

有效:

=First(Fields!OrderDate.Value, "MyDataSet")

当我从上下文中检索实体时,我使用 Include 加载了 Customer。所以空引用不是问题。

Order order = context.Orders.Include(o => o.Customer).Where(o => o.OrderID == id).FirstOrDefault();

我搜索了以下内容和其他内容,但听起来像是只适用于 visual studio 2010 或根本不起作用:
Bind child object property with in rdlc (Report)
http://wraithnath.blogspot.com.br/2011/04/reportviewer-object-datasource-nested.html

有没有我没有做的事情,或者我应该用另一种方式来解决这个问题,比如某种“代码优先 View ”?

最佳答案

这个答案在 VS2013 中对我有用:

http://wraithnath.blogspot.com/2011/04/reportviewer-object-datasource-nested.html

确保你的类满足要求,记得添加无参数构造函数,(它只对我有用,直到我添加无参数构造函数)

list :

  • 所有类都是可序列化的(类中的每个用户类型都必须是可序列化,并且用户类型属性中的任何用户类型都必须是可序列化)
  • 所有类都有一个公共(public)的无参数构造函数
  • 报告中使用的所有类都必须有 public 修饰符
  • 如果数据源的任何属性或属性的任何属性不能序列化然后你会得到#Error。只要确保一切是可序列化的
  • 确保不会出现无限递归问题,例如,A 类有一个B 类的属性,B 类具有 A 类的属性。使用 XMLIgnore/ScriptIgnore 属性

这是我的类(class):

[Serializable]
public class Person
{
public Person()
{

}
public string Name{ get; set; }
public string Address1{ get; set; }
public string Id{ get; set; }
public string Phone { get; set; }
}

家长:

[Serializable]
public class Header
{
public Header()
{

}

public string Product { get; set; }
public DateTime EmisionDate{ get; set; }
public string Number { get; set; }
public Person Person { get; set; }
}

这是我的表情

=First(Fields!Person.Value.Name, "dsHeader")

关于c# - Visual Studio 2013 Rdlc - 如何显示导航属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33577425/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com