Tag: C#的

EF代码优先计算栏

我需要在我的数据库中有一列由数据库计算(行的总和) – (行的总和)。 我使用代码优先模型来创build我的数据库。 这是我的意思: public class Income { [Key] public int UserID { get; set; } public double inSum { get; set; } } public class Outcome { [Key] public int UserID { get; set; } public double outSum { get; set; } } public class FirstTable { [Key] public int UserID { get; […]

std :: vector,默认构造,C ++ 11和重大更改

今天我跑了一个非常微妙的问题,我想请你的意见。 考虑以下花园式的共同成语成语课: struct S { S() : p_impl(new impl) {} private: struct impl; boost::shared_ptr<impl> p_impl; }; 当你试图用下列方法把它们放到vector中时,乐趣就会出现: std::vector<S> v(42); 现在,至less在MSVC 8中, v所有元素共享相同的impl成员。 其实,是什么导致这是vector构造函数: template <typename T, typename A = …> class vector { vector(size_t n, const T& x = T(), const A& a = A()); … }; 在场景下,只有一个S对象被默认构造, vector的n元素被复制。 现在,用C ++ 11,有右值引用。 所以它不能这样工作。 如果一个vector被构造成 std::vector<S> […]

C#guid和SQL uniqueidentifier

我想创build一个GUID并将其存储在数据库中。 在C#中,guid可以使用Guid.NewGuid()创build。 这会创build一个128位的整数。 SQL Server有一个uniqueidentifier列,它包含一个巨大的hex数字。 有没有一个好的/首选的方式,使C#和SQL Server GUID一起玩好? (即使用Guid.New()创build一个GUID,然后使用nvarchar或其他字段将其存储在数据库中…或者通过其他方式创buildSQL Server预期的hex数字)

为什么StyleCop推荐使用“this”的前缀方法或属性调用?

我一直在试图遵循St​​yleCop的一个项目的指导方针,看最后的代码是否更好。 大多数规则是合理的,或者是关于编码标准的一个意见问题,但有一条规则使我困惑,因为我没有看到其他人推荐它,而且我也没有看到明显的好处: SA1101:对{方法或属性名称}的调用必须以“this”开头。 前缀以指示该项目是类的成员。 不利的一面是,代码显然更加冗长,那么遵循这个规则有什么好处呢? 这里有人遵守这个规则吗?

如何在FtpWebRequest之前检查FTP上是否存在文件

我需要使用FtpWebRequest将文件放在FTP目录中。 在上传之前,我首先想知道这个文件是否存在。 我应该使用什么方法或属性来检查这个文件是否存在?

WebConfigurationManager和ConfigurationManager有什么区别?

WebConfigurationManager和ConfigurationManager有什么区别? 我应该什么时候使用一个? 更新 我只是看着WebConfigurationManager,出于某种原因,你不能像在ConfigurationManager中那样访问连接string(就像数组一样)。 谁能告诉我为什么MS做到这一点? 使用WebConfigurationManager获取所需的连接string似乎很痛苦。 与CAVEAT再次更新! 如果您没有对添加到项目中的“System.Configuration”命名空间的引用,那么当您尝试像访问数组一样访问WebConfigurationManager.ConnectionStrings时,Visual Studio将显示错误!

模拟交叉上下文联接 – LINQ / C#

这是问题: 我有两个数据上下文,我想要join。 现在我知道LINQ不允许从一个上下文连接到另一个上下文,而且我知道2个可能的解决scheme是创build单个数据上下文或者有2个单独的查询(这就是我现在所做的)。 但是我想要做的是“模拟”一个连接。 这是我试过的。 using (var _baseDataContext = Instance) { var query = from a in _baseDataContext.Account.ACCOUNTs where a.STR_ACCOUNT_NUMBER.ToString() == accountID join app in _baseDataContext.Account.APPLICATIONs on a.GUID_ACCOUNT_ID equals app.GUID_ACCOUNT join l in GetLoans() on app.GUID_APPLICATION equals l.GUID_APPLICATION select l.GUID_LOAN; return query.Count() > 0 ? query.First() : Guid.Empty; } private static IQueryable<LOAN> GetLoans() { using […]

在接口类中声明抽象信号

当实现类已经从QObject / QWidget中被驱动出来时,如何在抽象类/接口中声明一个Qt信号? class IEmitSomething { public: // this should be the signal known to others virtual void someThingHappened() = 0; } class ImplementEmitterOfSomething : public QWidget, public IEmitSomething { // signal implementation should be generated here signals: void someThingHappended(); }

WCF HttpTransport:stream式传输与缓冲传输模式

我有一个自托pipe的WCF服务(v4框架),通过基于HttpTransport的自定义绑定公开。 该绑定使用了一个自定义的MessageEncoder ,它几乎是一个BinaryMessageEncoder ,并增加了gzip压缩function。 Silverlight和Windows客户端使用Web服务。 问题 :在某些情况下,服务必须返回非常大的对象,偶尔在响应多个并发请求时(即使任务pipe理器报告进程为〜600 Mb),抛出OutOfMemoryexception。 自定义编码器发生exception时,消息即将被压缩,但我相信这只是一个症状,而不是原因。 例外情况是“未能分配x Mb”,其中x为16,32或64,而不是过大的数额 – 因此,我相信其他的东西已经把这个过程放在了一些极限之前。 服务端点定义如下: var transport = new HttpTransportBindingElement(); // quotas omitted for simplicity var binaryEncoder = new BinaryMessageEncodingBindingElement(); // Readerquotas omitted for simplicity var customBinding = new CustomBinding(new GZipMessageEncodingBindingElement(binaryEncoder), transport); 然后我做了一个实验:将TransferMode从Buffered更改为StreamedResponse (并相应地修改了客户端)。 这是新的服务定义: var transport = new HttpTransportBindingElement() { TransferMode = TransferMode.StreamedResponse // <– […]

在ASP.NET MVC模拟

我有一个内部网上的MVC Web应用程序,并希望能够在我们的FTP服务器上创build文件发送给外部合作伙伴。 模拟代码使用WindowsImpersonationContext。 System.Security.Principal.WindowsImpersonationContext impersonationContext; impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); StreamWriter sw = System.IO.File.CreateText("PathOnFTPServer"); sw.Write("data"); impersonationContext.Undo(); 以下是发生了什么事以及我的问题的原因: 在假冒前 User.Identity.Name:[我的Windows凭据] System.Security.Principal.WindowsIdentity.GetCurrent()。名称:NT AUTHORITY \ NETWORK SERVICE 发布假冒 User.Identity:[我的Windows凭据] GetCurrent.Name:[我的Windows凭据] 模拟撤消 User.Identity:[我的Windows凭据] GetCurrent.Name:NT AUTHORITY \ NETWORK SERVICE 所以,在我模拟之前,当前用户是系统帐户,但是模拟之后,它使用我的Windows域帐户,它有权在FTP服务器上创build文本文件。 该代码在本地使用Visual Studio Web服务器工作,但不在我们的testing服务器上的IIS上部署时。 我得到一个访问被拒绝的错误。 当正确的用户被冒充的时候,错误的原因是什么?