所有,
我一直在C#中使用线程一段时间,但我仍然对线程的公寓状态真正意味着什么感到困惑.我知道WinForms必须始终使用STA公寓状态(而不是MTA),但我仍然不清楚公寓状态是什么.
我正在尝试为数据库编写一个查询,该数据库将表连接到查找表,结果将根据case语句返回.
在普通的SQL中,查询看起来像这样:
SELECT chis_id, chis_detail, cilt.mhcatID, cilt.mhtID, 'TheFileName' =
CASE
WHEN cilt.mhcatID IS NOT NULL AND cilt.mhtID IS NOT NULL THEN chis_linked_filename
END
FROM chis
LEFT JOIN cilt on cilt.mhcatID = chis.mhcat_id AND cilt.mhtID = chis.mht_id
WHERE cch_id = 50
Run Code Online (Sandbox Code Playgroud)
chis是被查询的表,cilt是一个查找表,并且不包含任何与chis的外键关系(chis分别由mhtID和mhcatID存在于mht和mhcat表中的FK).
该查询将用于返回记录的历史更新列表.如果与cilt查找表的连接成功,则意味着查询的调用者将有权查看历史更新的任何关联文件的文件名.
虽然在我的研究过程中我发现了各种关于如何在Linq中实现案例陈述和左联接到实体查询的帖子,但我还是没有能够找到如何加入两个不同的领域.这可能吗?
linq-to-entities entity-framework left-join case-statement entity-framework-4
我一直在尝试使用扩展WPF工具包,以便我可以使用RichTextBoxFormatBar,但我似乎在cirlces中转向.尽管在这里和其他网站上尝试了几个例子我仍然收到相同的错误消息:
The attachable property 'FormatBar' was not found in type 'RichTextBoxFormatBarManager'.
The type 'toolkit:RichTextBoxFormatBar' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.
我是WPF的新手所以我知道这是我没有接受的东西,而不是一个bug,谁能告诉我我做错了什么并且保存了我的理智?
<UserControl x:Class="TestWPF_Richtextbox.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<RichTextBox>
<toolkit:RichTextBoxFormatBarManager.FormatBar>
<toolkit:RichTextBoxFormatBar />
</toolkit:RichTextBoxFormatBarManager.FormatBar>
</RichTextBox>
</Grid>
</UserControl>
编辑:库和项目都是.Net 4. WPFToolkit.Extended.dll的版本是V.1.6.0.0.
如果我正在调用一个使用out或ref参数的方法,为什么在调用方法时需要用out或ref标记参数?即
DateTime.TryParse(myDate, out dateLogged)
Run Code Online (Sandbox Code Playgroud)
我曾经认为这可以减少操作符重载时的歧义但是如果我创建两个这样的方法:
void DoStuff(int x, out int y)
{
y = x + 1;
}
void DoStuff(int x, ref int y)
{
y = x + 1;
}
Run Code Online (Sandbox Code Playgroud)
然后Visual Studio报告"无法定义重载方法'DoStuff',因为它与ref和out中的另一种方法不同",所以无论如何我都不能这样做.
编辑:
经过一些研究后,似乎我需要在调用方法时指定out或ref,如果有两个重载方法声明如下:
void DoStuff(int x, out int y)
void DoStuff(int x, int y)
Run Code Online (Sandbox Code Playgroud) 我一直在开发一个带有实体框架后端的WCF服务.当在WCF服务和客户端之间传递数据时,我考虑在设置POCO之前使用POCO或DTO.只有当我开始编码时,才意识到我从未考虑过使用EF实体在客户端和WCF服务器之间传递数据.
我的问题是:使用EF实体在WCF服务和客户端之间进行数据传输是一个可接受的选择,还是被认为是不好的做法?
我希望这个问题不会过于主观,但我试图理解这是否是一个可能的设计选择,而不是问题的最佳设计解决方案(这将是一个非常主观的问题).
我正在我的模型的get_distribuidor()函数中执行以下查询:
public function get_distribuidor()
{
$this->load->helper('url');
$query = $this->db->query("SELECT * FROM distribuidor where id_distribuidor='1';");
foreach ($query->result_array() as $row)
{
echo $row['id_distribuidor'];
echo $row['nome_empresa'];
echo $row['cod_postal'];
echo $row['localidade'];
echo $row['telefone'];
echo $row['fax'];
echo $row['email'];
}
$res = array(
'nome_empresa' => $row['nome_empresa'],
'morada' => $row['morada'],
'cod_postal' => $row['cod_postal'],
'localidade' => $row['localidade'],
'telefone' => $row['telefone'],
'fax' => $row['fax'],
'email' => $row['email']
);
return $res;
}
Run Code Online (Sandbox Code Playgroud)
现在,将$ res返回给控制器,我不太清楚如何分离数组结果包含的多个字段.
我在控制器的功能上使用它:
$data['nome_produto']=$this->fichas_model->set_fichas();
$teste=$this->fichas_model->get_distribuidor();
$this->load->view('produtos/ponto1',$data, $teste);
Run Code Online (Sandbox Code Playgroud)
在视图上写这样的东西:
<input type="input" name="morada" value="<?php echo $teste['morada'];?>" /><br />
Run Code Online (Sandbox Code Playgroud)
但它没有用,有人能指出我做错了什么吗?
给定一个字符串,"xyz"是否出现在字符串的中间?为了定义中间,我们将说"xyz"左侧和右侧的字符数必须至少相差一个.这个问题比它看起来更难.
我的解决方案在没有第二个最后一行的情况下工作,除了一个条件:如果str ="xyx"是否可以修改for循环以考虑到这一点......我正在努力理解它为什么不这样做.
我的解决方案确实有效我只是想更好地理解我正在做的事情.我知道我可以将它添加到第一个if语句中,但我想知道为什么没有它它不起作用.
public boolean xyzMiddle(String str) {
for (int i=0;i<str.length()-3;i++) {
if (str.substring(i,i+3).equals("xyz")) {
String front =str.substring(0,i);
String end = str.substring(i+3);
int a =Math.abs(front.length() -end.length());
if (a<=1) return true;
}
}
if (str.equals("xyz")) return true;
return false;
Run Code Online (Sandbox Code Playgroud) 我创建了一个 ASP MVC Web 应用程序。我为错误 404 表单添加了自定义错误页面。Web 配置中的自定义错误部分如下所示:
<customErrors mode="On">
<error statusCode="404" redirect="/errors/Error404" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
我有一个返回 HttpNotFound 结果的控制器
return HttpNotFound();
Run Code Online (Sandbox Code Playgroud)
问题是它显示默认的错误 404 页面而不是我的自定义页面。
我有一个项目,我使用查找表将两个表链接在一起:
Day WeatherLookUp Weather
--- ------------- -------
ID (PK) --> DayID |- ID (PK)
WeatherID <---| Description
Run Code Online (Sandbox Code Playgroud)
这允许我指定一天的多个天气条件。
我可以毫无问题地阅读此内容,但我的问题是当我在“日期”和“天气”表之间插入链接时。我创建了 WeatherLookup 表的两列作为表的复合主键,因此 EF 不允许我直接插入到 WeatherLookup 表中。
我原以为我只需要添加一个像这样的天气条目:
myDay.Weather.Add(new Weather { ID = 2 } );
Run Code Online (Sandbox Code Playgroud)
...但 EF 认为我正在尝试添加新的天气类型。
我确信我错过了一些明显的东西,但我不知道什么,我需要Attach()以某种方式使用吗?
我想按 DESC 顺序对数据进行排序。这是我的代码:
var predicate = Predicates.Sort<myPoco>(x => x.name, false);
var result = GetList<myPoco>(predicate).ToList();
protected IEnumerable<T> GetList<T>(object predicate, IList<ISort> sort = null, IDbTransaction transaction = null, int? commandTimeout = null, bool buffered = false) where T : class
{
var result = connection.GetList<T>(predicate, sort, transaction, commandTimeout, buffered);
return
}
Run Code Online (Sandbox Code Playgroud)
使用 Dapper Extensions,我无法对数据进行排序。上面的代码抛出以下错误:
找不到属性名称...
我正在myPoco使用 Dapper Extension 的ClassMapper.