对于具有标识的表:
[AutoIncrement]
public int Id { get; set;}
Run Code Online (Sandbox Code Playgroud)
将新行插入数据库时,检索对象Id的最佳方法是什么?
例如:
db.Insert <>(new User());
插入后Id的值为0,但在数据库中显然不是这种情况.我能看到的唯一可能性如下:
Id = (int)db.GetLastInsertId();
Run Code Online (Sandbox Code Playgroud)
但是我不相信这是一个安全的号召.如果同时发生100个插入,则可能会返回另一个插入的Id.在EF中进行插入时,将为您设置ID.
有谁知道最好的方法吗?
在工作中,我们拥有超过90个项目的解决方案.我想知道是否有办法阻止visual studio在遇到错误时立即编译.通常它会尽可能地编译并在错误窗口中显示错误列表.
有任何想法吗?
ServiceStack如何处理并发调用?我在WCF中寻找相当于ConcurrencyMode.Multiple的东西.
我的WCF服务设置了此属性:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)]
Run Code Online (Sandbox Code Playgroud)
我是否需要在ServiceStack中启用任何内容以使其为每个调用使用多个线程?
有没有办法让实体对象通过关系自动提取所有相关数据,而不是必须.包括我想要填充的所有内容?我不能使用延迟加载,因为这需要序列化以通过WCF.让它自动填充相关集合真是太棒了.
我要做的是在标记为mdi容器的表格上画一些玻璃.但是,只要设置了IsMdiContainer,表单就会在其控件列表中添加一个MdiClient.此时,父表单会发生一些事情 - 几乎就像深灰色面板停靠在MdiClient所在的整个表单上.
我接下来要做的是将MdiClient控件移开一点:
foreach(var c in Controls)
{
if(c is MdiClient)
{
var client = (MdiClient)c;
client.BackColor = Color.Red;
client.Dock = DockStyle.None;
client.Size = new Size(this.Width-100, this.Height);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,这使得实际的MdiClient区域变小,以便我们可以看到它背后的内容(托管子窗体的位),并且显然父窗体不是绘画或其他东西.
从这里可以看出:http://img525.imageshack.us/img525/8605/mdiglassproblem.png
我现在需要以某种方式获得MdiClient背后的区域(在玻璃部分呈现白色的深灰色部分)消失.
有任何想法吗?
PS - 在Vista中使用DwmExtendFrameIntoClientArea方法渲染Glass.
我在WCF 4.0中实现了很多RESTful(GET和POST)方法.所有这些都通过SSL工作.
一些方法的示例:
[OperationContract]
[WebInvoke(UriTemplate = "Login?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
LoginResponse Login(LoginRequest request);
[OperationContract]
[WebInvoke(UriTemplate = "UpdateDetails?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
UpdateUserDetailResponse UpdateDetails(UpdateUserDetailRequest request);
[OperationContract]
[WebInvoke(UriTemplate = "GetDetails?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
UserDetailResponse GetDetails(UserDetailRequest request);
Run Code Online (Sandbox Code Playgroud)
我查看了很多博客和论坛,但仍然无法找到符合我要求的内容.我需要对某些方法实现基本身份验证,但不是全部.如果你看一下上面的例子,我需要为UpdateDetails和GetDetails方法发送用户名和密码,而不是Login方法.然后,对数据库验证用户名和密码.可以这样做吗?
作为旁注:这些REST方法由许多不同的移动设备调用.
我查看了以下站点,它们都通过REST实现基本身份验证,但它们涵盖了上面提到的所有方法.
有可能做我想做的事吗?
我有一个客户端/服务器基础设施.目前,他们使用TcpClient和TcpListener在所有客户端和服务器之间发送接收数据.
我目前所做的是当收到数据时(在它自己的线程上),它被放入一个队列中供另一个线程处理,以便释放套接字,使其准备好并打开以接收新数据.
// Enter the listening loop.
while (true)
{
Debug.WriteLine("Waiting for a connection... ");
// Perform a blocking call to accept requests.
using (client = server.AcceptTcpClient())
{
data = new List<byte>();
// Get a stream object for reading and writing
using (NetworkStream stream = client.GetStream())
{
// Loop to receive all the data sent by the client.
int length;
while ((length = stream.Read(bytes, 0, bytes.Length)) != 0)
{
var copy = new byte[length];
Array.Copy(bytes, 0, copy, 0, length);
data.AddRange(copy); …Run Code Online (Sandbox Code Playgroud) 我在以下部分中有以下内容:
_favElement = new StyledStringElement (string.Empty);
_favElement.Alignment = UITextAlignment.Center;
if (_room.IsFavourite) {
_favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
_favElement.Caption = "Unmark as Favourite";
} else {
_favElement.Image = null;
_favElement.Caption = "Mark as Favourite";
}
_favElement.Tapped += favElement_Tapped;
Run Code Online (Sandbox Code Playgroud)
然后,当我按下元素时,我希望发生以下情况:
private void favElement_Tapped ()
{
if (_room.IsFavourite) {
_favElement.Image = null;
_favElement.Caption = "Mark as Favourite";
} else {
_favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
_favElement.Caption = "Unmark as Favourite";
}
_room.IsFavourite = !_room.IsFavourite;
}
Run Code Online (Sandbox Code Playgroud)
但是,当点击元素时,图像和文本在实际元素中不会改变.是否有刷新方法或必须调用的东西?我也试过改变Tapped上的附件,没有任何变化.后面的属性确实反映了正确的值.
我正在从银行实施API,他们需要提供安全令牌.在每个肥皂消息的标题中,有一些看起来如下:
<soapenv:Header>
<tpw:BinarySecurityToken ValueType="MAC" Id="DesMacToken" EncodingType="Base64" Value="**xvz**"/>
</soapenv:Header>
Run Code Online (Sandbox Code Playgroud)
根据他们的文档,我需要在每条消息的主体上生成一个8字节的MAC值.MAC由CBC-MAC算法生成,DES由块密码生成.每条消息的soapenv:Body标签的内容用作MAC计算的数据.
所以我的问题是如何让WCF这样做?我已将以下代码放在一起以创建MAC值,但我不确定如何将其放入每条消息的标头中.
private string GenerateMAC(string SoapXML)
{
ASCIIEncoding encoding = new ASCIIEncoding();
//Convert from Hex to Bin
byte[] Key = StringToByteArray(HexKey);
//Convert String to Bytes
byte[] XML = encoding.GetBytes(SoapXML);
//Perform the Mac goodies
MACTripleDES DesMac = new MACTripleDES(Key);
byte[] Mac = DesMac.ComputeHash(XML);
//Base64 the Mac
string Base64Mac = Convert.ToBase64String(Mac);
return Base64Mac;
}
public static byte[] StringToByteArray(string Hex)
{
if (Hex.Length % 2 != 0)
{
throw new ArgumentException();
}
byte[] HexAsBin = …Run Code Online (Sandbox Code Playgroud) 我有很多Web服务,当它们被调用时,它们需要在返回之前调用其他外部服务来获取信息.这一切都是同步完成的.
因此,如果我有一个返回电影列表的电影GET服务,Web服务逻辑将等待电影提供商的外部服务返回数据,处理它并返回GET的数据.
将外部服务调用包装在Task中并使用async/await模型可以证明它有什么好处吗?处理GET的初始线程是否仍然只是被阻塞等待响应,还是会被释放来处理其他传入的服务调用?
我曾尝试了一段时间,现在实现这个小册子教程使用ngx-leaflet。
在遵循本教程时,绝对没有关于如何实现自定义控件或图例的明确文档。
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info"
this.update();
return this._div;
};
// method that we will use to update the control based on feature properties passed
info.update = function (props) {
this._div.innerHTML = '<h4>US Population Density</h4>' + (props ?
'<b>' + props.name + '</b><br />' + props.density + ' people / mi<sup>2</sup>'
: 'Hover over a state');
}; …Run Code Online (Sandbox Code Playgroud) 在我的组织中,我们为许多不同的客户编写了许多自定义移动解 我们已经开始在一些测试产品中使用Microsoft Dynamics CRM 2011,但我们使用它的几乎所有工作都是使用自定义实体完成的,并且解决方案将其用作后端数据库.从我迄今为止的印象来看,以这种方式使用CRM是违反直觉和缓慢的.
根据您的经验,使用CRM而不是普通的SQL Server会有什么好处吗?我只看到了CRM前端的非常基本的东西,但我不确定自定义实体如何在CRM中变得有用?
c# ×7
wcf ×3
rest ×2
security ×2
servicestack ×2
sql-server ×2
angular ×1
compilation ×1
concurrency ×1
dynamics-crm ×1
entity ×1
forms ×1
leaflet ×1
mdi ×1
mdiparent ×1
mobile ×1
networking ×1
ngx-leaflet ×1
soap ×1
tcpclient ×1
tcplistener ×1
token ×1
typescript ×1
web-services ×1
xamarin.ios ×1