我正在创建一个可以接收任何Linq查询的通用表单(C#).在这种形式中,我希望能够添加过滤器(WHERE子句).对于像"=",">","喜欢"等操作员,我可以做类似的事情IQueryable.Where(someFieldname + "> @0", someCriteria).但是,当我想能够做相当于T-sql"IN"时,我完全迷失了.我已经搜索了几个小时,但找不到实现它的方法.
在考虑它时,应该可行的方法是将IN子句的值放在字符串数组或其他简单的字符串列表中.然后使用基本查询加入此列表.但是,当基本查询可以是任何查询时,如何加入这两个?
示例:假设我的基本查询类似于:
IQueryable<Object> q = from a in db.Adresses
select new { a.Street, a.HouseNr };
Run Code Online (Sandbox Code Playgroud)
在我希望能够像这样过滤HouseNr的形式:Where HouseNr IN(1,3,5)数字(1,3,5)在字符串数组(或任何其他字符串列表)中可用.
我怎么能实现这一点,知道基本查询可以是什么?
我正在尝试删除AWS ElastiCache集群中的所有键/值,但是当我正在执行flushall或flushdb从redis-cli中执行操作时,它只会删除当前连接到的节点中的值。
我正在寻找一个可以删除集群中所有节点的所有密钥的命令。我可以运行cluster nodes,获取主节点列表,分别连接到每个主节点,然后运行flushdb,但这要调用有效的TRUNCATE命令似乎有很多开销。有更简单的方法吗?
我有两个单选按钮.如果我检查第一个单选按钮以下数据将填充在组合框中.之后,我将检查另一个单选按钮,我想清除组合框值.
<RadioButton Height="29"
HorizontalAlignment="Left"
Margin="143,193,0,0" Name="rdoEmployee" VerticalAlignment="Top" Width="61"
FontSize="20" Checked="rdoEmployee_Checked" GroupName="rdoEmployee/>
<RadioButton FontSize="20" Height="20" Margin="228,193,0,0" Name="rdoPA"
VerticalAlignment="Top" HorizontalAlignment="Left" Width="49"
Checked="rdoPA_Checked" GroupName="rdoEmployee />
<ComboBox HorizontalAlignment="Left" Margin="142,235,0,240"
Name="cmbEmpType" Width="200" FontSize="16" />
Run Code Online (Sandbox Code Playgroud)
EmployeeTypes _ET = new EmployeeTypes();
DataRowCollection drc = _ET.EmpTypeTable.Rows;
foreach (DataRow r in drc)
{
ComboBoxItem item = new ComboBoxItem();
item.Tag = r["EmpTypeID"];
item.Content = r["EmpTypeName"];
cmbEmpType.Items.Add(item);
if (cmbEmpType.Items.Count > 0)
{
cmbEmpType.SelectedIndex = 0;
}
}
Run Code Online (Sandbox Code Playgroud) 我们有一个角色继承结构,而不是最高级别的过滤,它假设默认情况下每个人都获得最低级别的角色,图形描述如下:
role.Everyone //lowest level; everyone gets this role
role.Applications // everyone assigned this role gets applications && everyone roles
role.Databases // everyone assigned this role gets databases && applications && everyone roles
role.SoftwareSubscriber
role.Client_All // etc.
role.Client
role.ITClient
role.Client
role.NewsService // everyone assigned this role gets NewsService && Client && Everyone
// && Client_All roles, since Client is also a child of Client_All
role.ClientDeliverable // etc.
role.Employee
role.Corporate
role.Marketing
role...
...
Run Code Online (Sandbox Code Playgroud)
我会检索所有“父母”(真的,孩子,但无论如何)和他们任何给定角色的递归父母。例如,我希望有一个查询要求 的父母role.Databases返回role.Applications和role.Everyone。同样,我期望的父母要求查询role.NewsService …
要对Microsoft Dynamics CRM执行查询,必须传递某些实体名称以过滤结果.但是,使用.NET Framework 4,我没有EntityName枚举,尽管它应该是公共的.这是为什么?
以下是我想念的内容:http://msdn.microsoft.com/en-us/library/bb959317.aspx
我有一个TargetTable有DECIMAL(20, 7)列的目标表.我也有一个SourceTable包含DECIMAL(20, 7)列的源表,但是这个表中的值都是整数.
当我尝试将数据UPSERT成TargetTable从SourceTable通过MERGE声明,我得到一个标准错误.
算术溢出错误将数字转换为数据类型数字.
我真的不明白为什么会发生这种情况,因为两种数据类型都是相同的.
但奇怪的是:当我使用SELECT INTOon TargetTable来创建测试表TestTable,然后将合并的目标更改为TestTable,upsert完成.我也弄不明白为什么会是这样,因为TargetTable和TestTable是大部分相同.
有没有人遇到过这个,这是一个错误,还是有一些我不知道的SQL Server的细微差别?
示例代码:
失败:
SET NUMERIC_ROUNDABORT Off
GO
MERGE
TargetTable Target
USING
(
SELECT
cast(forecast as DECIMAL(20, 7)) forecast
,[SegmentID]
,[Country]
,[Environment]
,[YearColumn]
,[ForecastYear]
,[Criterion]
FROM
SourceTable
) Source
ON
(
Target.SegmentID = Source.SegmentID
AND Target.Country = Source.Country
AND Target.Environment = Source.Environment
AND Target.YearColumn = …Run Code Online (Sandbox Code Playgroud) 我的工作流程有"提示和响应"对话框.我可以使用API运行工作流程ExecuteWorkflowRequest但是如何为提示和响应输入提供值?
我见过许多开发人员想要调用Event它们将它分配给一个名为的本地变量handler并调用handler而不是Event直接调用.为什么我们不直接调用事件?
private void OnSomethingChanged(EventArgs e)
{
if (SomethingEvent != null)
{
SomethingEvent(this, e);
}
}
Run Code Online (Sandbox Code Playgroud) 在尝试合并 Microsoft CRM 中的联系人时,我使用了以下代码 -
//c1ID and c2ID are GUIDs of duplicated contacts.
EntityReference target = new EntityReference();
target.LogicalName = Contact.EntityLogicalName;
target.Id = c2ID;
MergeRequest merge = new MergeRequest();
// SubordinateId is the GUID of the account merging.
merge.SubordinateId = c1ID;
merge.Target = target;
merge.PerformParentingChecks = true;
Contact updater = new Contact();
Contact updater2 = new Contact();
updater = (Contact)xrmSvc.ContactSet.Where(c => c.ContactId.Equals(c1ID)).First();
updater2 = (Contact)xrmSvc.ContactSet.Where(c => c.ContactId.Equals(c2ID)).First();
MergeResponse mergedR = (MergeResponse)xrmSvc.Execute(merge);
Run Code Online (Sandbox Code Playgroud)
当我在这里尝试执行 Execute 调用时,出现此错误 -
无法在列集中为检索指定子属性。属性:所有者名称。
我没有正确设置吗?