直接贴代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using TemplateTest1.Models; namespace TemplateTest1 { public class EFContext : DbContext { public EFContext() : base("Default") { } public DbSet<AdGroupAdPositions> AdGroupAdPositions { get; set; } public DbSet<CompanyAddresses> CompanyAddresses { get; set; } public DbSet<AdPositions> AdPositions { get; set; } public DbSet<CompanyContacts> CompanyContacts { get; set; } //还有很多属性 } }
上述代码是我用T4模板生成的,里面还有很多public DbSet<> 属性。
但是我只用到了上面四个,其它都没用到,请问如果我保留其它的属性,会对性能有影响吗?
你知道什么是性能吗?
大叔都9000分了.我才4000分.
@苏本东: 不要太在意....就以你的问题来说.你为什么会有你上面的问题?
@吴瑞祥: 是这样的,我们的系统有100多张表,但是我负责的模块只涉及到最多10张表,我用T4模板生成context的时候,100多张表都生成了。但我用不到那么多,在context实例化的时候,其它用不着的属性会在实例化时对性能有影响没?
@苏本东: 属性就是方法.这个事情知道吧?
你多定义了几个方法,在不调用的时候会影响性能吗?
@苏本东: 答案是会,但是没有关系,也可能有关系。
因为通常你在其他地方随随便便损失的性能已经远远大于这个了。
比如这么说吧,富士康帮苹果造IPHONE,收4美元加工费,如果他只收3美元,
性能提高25%,有屁用。IPhone还是不会降价的。
而且你这个估计还没有25%,充其量损失了十万分之一。因为类里面多了一个属性,所以内存占用就多了一点点,所以性能就影响了一点点,你要让我说完全不会,那是撒谎,可你要说会,
我只能说你还要多读书。瑞祥的回答也说明了。
在整个性能链条里面,根本就一点水花都看不见。
别告诉我你这个访问是亿万级的,这不科学。
我的观点是,有一堆的代码到处在损害性能,却在这种细枝末节上计较。
看了你的补充回答,不是完全什么都不懂的新手,没有明白你为什么还会在这上面Care.
你如果有做过成本核算方面的工作,就应该知道,有些成本就算是零也于事无补,因为那个成本根本不影响(基本不影响)整体成本。
@吴瑞祥: 好的,多谢。我也觉得不会。但我们总监说会,然后我就以为我有考虑不到的方面,所以出来提问。
@爱编程的大叔: --! 受教。是要多读书。不对,应该是多学习。
@爱编程的大叔: 受教了,有时候做开发的时候,确实需要一些商业方面的意识,如商业成本核算。
不会
看你要 忽略不计还是斤斤计较呗
没影响,嫌多的话,干脆一个不要, 在初始化时把model和ef进行绑定OnModelCreating..DbModelBuilder。
后面用的话直接 db.Set<Model>()来获取