我正在编写MVC5Internet应用程序,我对模型的id字段有疑问。我应该使用int还是long作为模型中的id?我说的是用于主键的字段?如果数据库有100,000条记录,一个int就足够了吗?c#中的int与SQL数据库中的int不同吗?提前致谢 最佳答案 对于INT类型,从1开始,您将获得超过20亿可能的行-这对于绝大多数情况来说应该绰绰有余。使用BIGINT,您可以获得大约922千万亿(922有15个零-922'000亿)-对您来说足够了吗??如果您使用从1开始的INTIDENTITY,并且您每秒插入一行,全天候,您需要66
我目前正在trycatch中查找属性是否已正确设置为应该像这样的bool值...publicvoidRunBusinessRule(MyCustomTypecustomType){try{if(customType.CustomBoolProperty==true){DoSomething();}else{thrownewException("Thisisobviouslyfalseorpossiblynullletsthrowupanerror.");}}catch(Exception){throw;}}现在对我抛出这个错误的处理是我正在使用微软的源代码分析,它给了我一个错误,指出“
我不确定,因为在Java中,getter/setter看起来有点不同,但是编写这些东西的“c#方式”是什么?选项a.)privatestringname;publicstringName{get{returnname;}set{name=value;}}privateinttime;publicintTime{get{returntime;}set{time=value;}}b.)privatestring_name;privateint_time;publicstringname{get{return_name;}set{_name=value;}}publicinttime{get
这与C#中使用的约定有关。我有一个方法有两个参数(X和Y坐标)。这些坐标表示“瓦片”可能驻留的位置。如果图block位于这些坐标处,则该方法返回其编号。如果这些坐标上没有图block,我想知道该方法应该如何运行。我看到三个选项:使用异常(exception)。每次方法找不到图block时,我可能会引发异常。但是,由于这种情况并不少见,因此此选项是最糟糕的选项。以老式的C++方式执行此操作,如果没有磁贴则返回-1。将瓦片编号作为引用参数并将方法的返回类型更改为bool值以显示是否有瓦片。但这对我来说似乎有点复杂。那么,我该怎么办呢? 最佳答案
我正在阅读Microsoft的BestPracticesforUsingStringsinthe.NETFramework.它给出了以下示例作为对StringComparison.OrdinalIgnoreCase的介绍:publicstaticboolIsFileURI(stringpath){returnpath.StartsWith("FILE:",StringComparison.OrdinalIgnoreCase);}到目前为止,还不错。但它接着说:However,theprecedingexampleusestheString.StartsWith(String,Strin
我有几个代表网络应用程序的对象。目前我有一个集群对象来表示应用程序的特定部署。在集群对象中,我有以下对象:服务器、客户、用户。这些对象都不能不属于集群而存在,因此我创建了一个ClusterRepository来从数据库中检索集群。现在,我需要从集群中获取客户列表,大概是通过使用集群对象中的方法,如GetCustomers()。现在,我最初的想法是将此操作的工作卸载到CustomerRepository,但由于存储库仅用于聚合根,数据访问逻辑应该放在哪里?这属于服务类别吗? 最佳答案 从本质上讲,聚合根是您可能需要作为对象图的根获取的
假设我有一个像这样的POCO:publicclassName{publicstringFirstName{get;set;}publicstringLastName{get;set;}}名字和姓氏不能为空。我应该添加这样的方法吗:publicListValidate(){varerrors=newList();if(String.IsNullOrEmpty(FirstName))errors.Add(newError("FirstName","Youmustfilloutfirstname."));if(String.IsNullOrEmpty(LastName))errors.Add
我需要生成唯一的文件夹名称,我应该使用Path.GetRandomFileName吗?或者只使用Guid.NewGuid?Guids说它们是全局唯一的,GetRandomFileName并没有这样的说法。 最佳答案 我认为两者都是随机的,不同之处在于Path.GetRandomFileName将生成一个8.3文件名(总共11个字符),因此与由Guid.NewGuid. 关于c#-我应该使用Path.GetRandomFileName还是使用Guid?,我们在StackOverflow上找
我有一个WCF层,我的领域模型在这个WCF层后面。我正在使用Nhibernate作为ORM工具,我所有的业务逻辑/数据访问等都将在这个WCF层之后。我正在向我的客户公开DTO。我有以下问题1)我应该创建DTO吗?将实体直接暴露给wcf客户端有什么坏处,因为我的实体也会有业务逻辑方法,这样做我将不得不用我认为不好的WCF属性破坏我的实体对象?2)如果我公开DTO,我是否应该验证DTO以及实体。如果我只验证DTO,那么我不会为我的Enitity对象提供任何输入验证。这样可以吗?3)我是否应该考虑使用模式验证在应用程序服务层(WCF层)中验证DTO?或者我应该使用文章[博客]中给出的IVal
我想创建一个简单的游戏,例如tictactoe,让人类用户与计算机对战。计算机功能需要几毫秒才能运行,但我想给出计算机需要5秒才能移动的感觉。我应该使用哪种方法?1)创建两个内存线程。一种用于计算机,一种用于人类用户。当计算机用5秒模仿思考时,人类用户线程暂停5秒。2)使用计时器或调度器计时器禁用输入设备5秒3)你能想到的任何更好的方法..谢谢!编辑-问题是关于如何以及现在是为什么。5秒只是一个例子。我更喜欢1-2秒,但出于示例目的,我只选择了5秒。所以请关注执行此操作的最佳方法,而不是5秒。再次感谢。 最佳答案 噪音和闪烁的灯光=