首先,EF不是我们开发环境的选项,所以请不要"只使用EF"答案......
我认为这是一个相当标准的困境,所以我敢肯定大多数专业人士都必须采取一种方式,我只是没有偶然发现...所以我在这里希望你们都能告诉我它是什么.
假设您有以下数据库表:
tblCompanies
ID
NAME
tblDepartments
ID
COMPANY_ID
NAME
tblEmployees
ID
DEPARTMENT_ID
FIRSTNAME
LASTNAME
Run Code Online (Sandbox Code Playgroud)
...在代码中的类中表示这个的最佳方法是什么?
我认为最好的方法是这样的:
public class Company
{
public int ID { get; set; }
public string Name { get; set; }
public List<Department> Departments { get; set; }
}
public class Department
{
public int ID { get; set; }
public string Name { get; set; }
public List<Employee> Employees { get; set; }
}
public class Employee
{
public int ID { get; …Run Code Online (Sandbox Code Playgroud) 我最近从头开始制作我的第一个4.0版GAC程序集,当我去安装它时,我得到了这个:Microsoft(R).NET全局程序集缓存实用程序.版本3.5.30729.1版权所有(c)Microsoft Corporation.版权所有.
将程序集添加到缓存失败:此程序集由运行时newe而不是当前加载的运行时构建,无法加载.
所以我找到了4.0 GacUtil(C:\ Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools)的位置,并将exe及其配置覆盖到那里的版本.我再一次在新的程序集上运行了/ i,然后得到了:Microsoft(R).NET全局程序集缓存实用程序.版本4.0.30319.1版权所有(c)Microsoft Corporation.版权所有.
但是在c:\ windows\Assembly中没有大会的痕迹.我以为我做错了什么并试图跑一个gacutil /?看看我可以尝试的其他选项(以及为什么在我安装程序集时没有显示输出)但它只是输出相同的东西:Microsoft(R).NET全局程序集缓存实用程序.版本4.0.30319.1版权所有(c)Microsoft Corporation.版权所有.
为了确保我没有失去理智,我复制了我一直使用的旧gacutil.exe并做了/?它加载了命令的帮助信息.把新的gacutil放回去再次尝试但仍然没有输出.
在使用这个新的4.0 gacutil时,有什么我做错了或错过了吗?
注意:程序集也不会出现在Windows\Microsoft.NET\Assemblies中.
只是一个表演问题......
假设我有5个类,每个类都有对System.Data和本地库的引用.有问题的5个类是类库的一部分,最终将构建并发布到一些Web应用程序作为参考.
通过将引用System.Data和其他库的函数添加到它们自己的类中来获得任何大小/性能,以便System.Data和我的其他库被引用的次数从5减少到1?Common Sense告诉我它并不重要,因为DLL会在其中一个函数执行时被读取,因此无论它们位于何处或者您在"使用System.Data"中有多少次都无关紧要代码库...但我以前错了:)
我试过阅读ASP.NET中的缓存,但仍然有一些问题.
使用Sql Cache Dependency时...我知道您可以指定将监视哪些表,但如果其中任何一个表发生更改,它是否会重置整个缓存?我知道我不想缓存频繁更改的表,但我们最终会得到一些缓存的表,即使每个表每天只获得一些更新,也可能会变成50%的缓存重置每天(8小时窗口).
我将通过GAC DLL创建和维护此缓存.大量不同的应用程序将在任何时候访问该GAC.每个应用程序是否都维护自己的缓存副本,还是只存储在一个全局位置(或者可能是每个应用程序池)?
在服务器上是否有物理位置,我可以看到Cache当前消耗了多少空间?如果每个应用程序都维护自己的缓存,那么这将是非常相关的,因为这可能最终占用大量磁盘空间.
有没有办法物理强制缓存重建自己?我可以看到我的老板认为缓存是针对特定问题的错误而且我需要能够在最严格的级别上排除这一点.没有"改变记录并说应该重建缓存",而是"做[行动X]并且知道缓存中的任何内容现在已经消失"
提前感谢您的答案和时间.
我已经看到了获取ObjectA列表并转换为ObjectB列表的技术,其中两个类共享一些类似的属性,但是当你从ObjectA列表转到另一个列表时,有更简单的方法ObjectA?
基本上我想做...
var excv = from AuditedUser in data
where AuditedUser.IsMarkedForRemoval == false
select AuditedUser;
Run Code Online (Sandbox Code Playgroud)
...但是我希望结果形成一个新的List <AuditedUser>而不是var.
有什么东西超级容易我只是缺少?
我确信那里有答案......但谷歌搜索"C#使用"比你想象的要复杂一点.
无论如何......前几天真正开始学习这种方便的技术,似乎我不会将它用于我的代码中的任何非原始对象.
这是一个相当准确的陈述还是有一些缺点(在稍微混乱的代码之外)使用"使用"几乎所有东西?