【发布时间】:2016-10-12 21:30:47
【问题描述】:
场景:我需要创建一个数据不能很好地映射到现有实体的报告。
解决方案:我的解决方案是编写一个原始方法并让它返回一个 DataSet。
假设: 如果我编写了一个原始方法,其中查询中的所有字段都不匹配实体的属性,只要我指定返回类型 System.Data.DataSet,它仍然可以工作。
问题:
- 我的假设正确吗?
- 使用建模器,除了将返回类型名称指定为 System.Data.DataSet 之外,我还有什么要做的吗?
- 您是否在我的代码中看到任何错误。我在模型上进行了构建,它生成了没有错误的代码。但是当我构建/编译 BOM 时,当我得到错误时。我必须将我的代码/xml 作为代码 sn-p 输入,因为 stackexchange 很古怪,并且是它显示的唯一方式。运行代码截图按钮不会执行任何操作。
<cf:entity name="Test1" namespace="Amikids.TimeTracking" categoryPath="/Amikids.TimeTracking">
<cf:property name="Id" key="true" />
<cf:property name="Name" />
<cf:instance>
<cf:instanceValue name="Id">bda62961-eef9-48bd-977e-00732ce36c66</cf:instanceValue>
<cf:instanceValue name="Name">Mike</cf:instanceValue>
</cf:instance>
<cf:instance>
<cf:instanceValue name="Id">3378eddd-cd46-40e3-b5c5-eecaa1477229</cf:instanceValue>
<cf:instanceValue name="Name">Joe</cf:instanceValue>
</cf:instance>
<cf:method name="LoadReport" body="LOAD() ORDER BY Name" returnTypeName="System.Data.DataSet" />
</cf:entity>
错误:
错误 26 'System.Data.DataSet' 不包含 'LoadReport' 并且没有扩展方法 'LoadReport' 接受第一个 可以找到“System.Data.DataSet”类型的参数(您是否缺少 using 指令还是程序集引用?)
错误 25 'System.Data.DataSet' 不包含 'PageDataLoadReport' C:\Projects2\Amikids.TimeTracking\Amikids.TimeTracking\Test1Collection.cs
错误 27 'System.Data.DataSet' 不包含 'PageLoadReport' C:\Projects2\Amikids.TimeTracking\Amikids.TimeTracking\Test1Collection.cs
附加评论:
我查看了文章https://blog.codefluententities.com/2011/06/22/dataset-support-in-codefluent-entities/,但我认为它已经过时或不完整。以下是文章中的语法,它与建模者创建的非常不同。我尝试使用与文章相同的语法,但 Codefluent 实体以不同的方式自动重新编写,这也不起作用。该方法也没有表明它是否使用 SQL Server、Oracle 等,所以我认为有些东西丢失了从样本中。
<cf:method name="LoadAllCities" body="raw" returnTypeName="System.Data.DataSet">
SELECT $Address::City$ FROM $Address$
</cf:method>
【问题讨论】:
标签: codefluent