问题标签 [codefluent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
codefluent - 错误:无效的基础类型名称
如果您更改不存在的枚举的“基础类型名称”属性(错字)。应用程序抛出“CF0230:无效的枚举类型“System.Int32System.Int16”。错误。这很好。
但是,之后无法更改类型。我不得不手动编辑 CFP 来纠正错误。
c# - 使用 CodeFluent.Model.Common.Templating.Template 类时自定义 csc 编译器参数?
我们正在使用 CodeFluent 的模板引擎在自定义 SharePoint 2013 应用程序中生成自定义电子邮件。SharePoint 2013 应用程序通常与 SharePoint 2016 向前兼容,但我们在尝试使用针对 SharePoint 2016 中针对 SharePoint 2013 编译的程序集时遇到了与 CodeFluent 相关的障碍。
在 SharePoint 2016 中调用 Template.Run(..) 时,我们收到以下错误(16.0.0.0 程序集与 SharePoint 2013 中的 15.0.0.0 程序集):
CF7010:使用语言“CSharp”的 CodeFluent 模板 '' 异常:c:\windows\system32\inetsrv> "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /t:library /utf8output /R :"C:\Windows\assembly\GAC_MSIL\CodeFluent.Model.Common\1.0.0.0__1bb6d7cccf1045ec\CodeFluent.Model.Common.dll" /R:"C:\Windows\assembly\GAC_MSIL\CodeFluent.Runtime\1.0.0.0 __1bb6d7cccf1045ec\CodeFluent.Runtime.dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\ Windows\assembly\GAC_MSIL\CodeFluent.Runtime\1.0.0.0__1bb6d7cccf1045ec\CodeFluent.Runtime.dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System. dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\RLSoft.XtraShare.BusinessLayer\v4.0_3.0.0.0__ee2f606d34db8cb1\RLSoft.XtraShare.BusinessLayer.dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll" / R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.SharePoint\v4.0_16.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.dll" /out:"C:\Users\SvcSpAppPool\AppData\Local\Temp \CFTemplating.Temp4.0.30319.42000\70804\CF_00000000001456124944.null.dll" /D:DEBUG /debug+ /optimize-Temp4.0.30319.42000\70804\CF_00000000001456124944.null.dll" /D:DEBUG /debug+ /optimize-Temp4.0.30319.42000\70804\CF_00000000001456124944.null.dll" /D:DEBUG /debug+ /optimize-/warnaserror "C:\Users\SvcSpAppPool\AppData\Local\Temp\CFTemplating.Temp4.0.30319.42000\70804\CF_00000000001456124944.null.cs" Microsoft (R) Visual C# 编译器版本 4.6.0081.0 for Microsoft (R) .NET框架 4.5 版权所有 (C) Microsoft Corporation。版权所有。c:\Windows\Microsoft.NET\assembly\GAC_MSIL\RLSoft.XtraShare.BusinessLayer\v4.0_3.0.0.0__ee2f606d34db8cb1\RLSoft.XtraShare.BusinessLayer.dll:错误CS1701:警告为错误:假设程序集引用 'Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' 匹配 'Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c',您可能需要提供运行时策略 c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SharePoint\v4.0_16.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.dll。
问题似乎源于 CodeFluent 显然使用 /warnaserror 标志调用 csc.exe 编译器这一事实。有没有办法自定义这种行为,使警告不被视为错误?
我们尝试在 csc.exe.config 和 SharePoint Web 应用程序的 web.config 文件中使用 bindingRedirect 条目,但无济于事。
以前有人遇到过这个问题,如果是这样,您是如何解决的?
codefluent - 实体中的复合键未反映在 Equals 方法中
给定具有 2 个键 keyA 和 keyB 的实体“MultipleKeysEntity”。
KeyA 是枚举类型;KeyB 属于 guid 类型。
由于 BOM 生产者为 Equals 方法生成的代码没有考虑 keyA。这是正常行为吗?
下面生成的代码
感谢您的回答,
29/08/2016 编辑
将属性 checkDefaultValue 设置为 true 后,Equals 方法按预期使用该属性。但是枚举的第一个值随后被视为“无效”值。
特别是 MultipleKeysEntityCollection::baseAdd() 方法阻止我使用值“ONE”
Equals 方法的代码如下:
syncfusion - Syncfusion 示例模型错误消息:索引和长度必须引用字符串中的位置
从 Github 下载的 Syncfusion 示例构建模型时,出现以下错误:
索引和长度必须引用字符串中的位置
https://github.com/SoftFluent/CodeFluent-Entities/tree/master/Samples/SoftFluent.Samples.Syncfusion
我确实安装了先决条件,包括来自http://www.syncfusion.com/products/wpf的 WPF 组件
首次发布问题后添加的附加信息
我将错误隔离到 Syncfusion WPF 生产者。当我禁用生产者时,错误消失了。我尝试重新编译 ContactManager.SyncfusionProducer.dll 并将其放在 C:\Program Files (x86)\SoftFluent\CodeFluent\Modeler 中。我得到了同样的错误。
codefluent - 来自数据库计算属性的值在 codefluent 实体属性中为 Null
我的 MS SQL 2014 数据库表有一个使用数据库函数的计算属性列。使用 SQL Server Management Studio,针对表的查询会按预期列出计算的属性值。
通过导入向导创建的 Codefluent 模型显示具有计算列作为属性的实体。底层 .cpf 文件使用“d3p1:compute=”定义属性以及数据库函数使用的参数列表。
当加载一个实体或实体集合时,计算属性中使用的属性具有值,但计算属性的值是空/空。
如何让 Codefluent 从数据库表中读取计算值并将该值包含在实体的属性中?
codefluent - 如何在项目级别使用“默认持久性强制”
我已将项目级别的属性“默认持久性强制”设置为true。然后我在用户和关联之间将“默认持久性强制”的关系设置为false 。当我从一个关系导航到另一个关系时,我的属性仍然设置为false。
现在当我运行生产者时:
我的财产恢复为真
生成的代码向我显示 CHECK CONSTRAINT,而不是 NO CHECK
枢轴中生成的约束显示为
check="true"
是否可以在项目级别强制“默认持久性强制”属性为 true 并停用某些关系?
感谢您的回答,
模型部分下方
生成的 SQL 如下所示
codefluent - 默认持久性强制设置为 true 无论如何都会删除关联表的行
属性 defaultPersistenceEnforce 在项目级别设置为 true。我们考虑以下示例。
当我们在表中引用了一个联系人时Case
,存储过程的调用Contact_Delete()
将按预期失败。
但是当表中没有引用时Case
,存储过程的执行Contact_Delete()
会删除关联表中的行Meeting_Contacts_Contact
。
这没有多大意义,因为我想阻止这种行为。特别是,我没有为删除指定任何级联关系。
我想确保不会在此类表中删除元组,尤其是在引用时。我怎样才能让存储过程Contact_Delete()
只删除联系人而不考虑引用?
感谢您的回答,
附上模型部分和 Contact_Delete 存储过程的定义。
存储过程 Contact_Delete
sql-server - 在 Codefluent 中使用 XML 作为方法参数
在 SQL 2014 数据库中,我有一个使用 XML 作为参数的存储过程。
我正在尝试创建一个使用 XML 作为参数类型的 Codefluent 方法。参数定义:
这导致 DB 过程的参数定义为:
而不是预期的:
如果我尝试增加参数的最大大小,我会得到一个更奇怪的结果:
如何将 XML 作为方法参数传递,以便在 SQL 生产者创建的存储过程中将参数定义为 XML?
我也很难理解 XML CF 类型的作用。如果我使用 XML 类型创建 CF 实体属性,则 BOM 会生成String类型的类属性。如果我将xElement或xDocument分配给该属性,则所有 XML 标记都将被剥离,最终只得到一长串值。在这种情况下,当我将此实体(应包含 XML 属性)用作 SQL 过程中的参数时,我得到一个无法选择元素的长字符串。
codefluent - 在多个属性中使用 OR 表达式的 CFQL 搜索方法
我正在尝试详细说明 SEARCH CFQL 方法。
我在实体Address中设置了属性TownId或属性TownLabel:
- 如果地址受到来自引用的城镇的影响,则设置TownId (城镇存储在另一个数据库中并且仅由 ID 引用)。
- 如果没有找到已知城镇,则设置TownLabel 。(例如国外城镇名称)
在我的 SEARCH 方法中,我想查找具有城镇标签的用户,或者是 townLabel 或者来自参考 whoes 名称的可能城镇包含值 townLabel。
长话短说,我的 CFQL 方法如下
尽管使用了 OR 运算符,但生成的 SQL 与 AND 运算符一起出现,如下所示。
我的问题:这正常吗?
架构如下
编辑 15/09/2016 - 添加原始 CFQL + 架构。
原始CFQL方法:
架构:
生成的 SQL(注意 townLabel 参数中额外的 AND)
编辑 2016 年 9 月 16 日 - 找到可能的解决方法。
我发现了两种可能的解决方法:
首先是使用其余参数(没有townId,没有townLabel)有一个更简单的搜索方法,并使用LINQ机制在内存中重新过滤。
其次是在 RAW 方法中使用生成的代码并对其进行调整以使其按照我们想要的方式工作。
codefluent - CQFL RAW 方法参数在生成的 SQL 中丢失其默认 NULL 值
在创建 RAW CFQL 方法时,我注意到与传统的 SEARCH 方法相比,参数的声明正在丢失其默认的 NULL 值。
因此,生成的过程将不接受任何空参数。通常我想拥有:
代替
这里使用的例子如下
1 -如何让我的参数在 RAW 方法中默认为 NULL?
我还注意到,似乎没有考虑给出返回类型(返回类型名称)的属性。生成的方法返回void而不是所选类型,并且位于Entity类而不是EntityCollection类中。
我已在此链接1中读到For syntax: RAW(arguments)。您必须在属性网格中指定返回类型
生成的方法没有考虑这个属性,返回 void 如下。
2 -我怎样才能让 RAW CFQL 程序根据类型返回?
感谢您的回答。