草庐IT

source-code-protection

全部标签

C# EF Code First 虚拟关键字,它有什么作用?

为什么我们在声明导航属性时需要使用“virtual”关键字?我知道CodeFirst框架以某种方式使用它来识别该属性是一个导航属性,但我想知道如何。具体来说,我想知道它与MSDN文档中针对“virtual”关键字的描述有何关系:http://msdn.microsoft.com/en-us/library/9fkccyh4(v=vs.80).aspx 最佳答案 在运行时,EntityFramework将为您生成所谓的代理实体。这些实体是派生自您的实体类型的动态创建类型的对象。这允许您将您的实体用作POCO,它是一个与EntityFr

c# - 使用 : HandleRef or IntPtr (newer source code from Microsoft no longer uses HandleRef) 哪个更好/更安全

例如,在旧的.NETFramework2.0源代码(Windows窗体、VisualStudio2005-Whidbey)中,GetClientRect函数是使用HandleRef定义的:[DllImport(ExternDll.User32,ExactSpelling=true,CharSet=CharSet.Auto)]publicstaticexternboolGetClientRect(HandleRefhWnd,[In,Out]refNativeMethods.RECTrect);在新的WindowsAPI代码包(来自Microsoft,2009/2010)中,使用IntPt

c# - 如何在 Entity Framework 4.1 的 Code-First Fluent API 中以编程方式定义关系

我正在玩弄新的EF4.1unicornlove。我正在尝试了解可以使用代码优先来以编程方式定义几个简单POCO之间的关系的不同方式。如何定义以下内容=>1Team有0-manyUser。(并且User在1个Team中)1User有0或1个Foo(但是Foo没有返回给User的属性)1User有1个UserStuff 最佳答案 这里有您正在寻找的示例:publicclassUser{publicintId{get;set;}...publicFooFoo{get;set;}publicTeamTeam{get;set;}publicU

c# - 你会不会有太多 "protected virtual"方法?

这是给那些在大型项目和API/框架设计方面有经验的人的问题。我正在开发一个将来会被很多其他项目使用的框架,所以我想把它做得很好并且可扩展,但同时它需要简单易懂。我知道很多人提示.NET框架包含太多密封类和私有(private)成员。我是否应该避免这种批评并向大量protected虚拟成员开放我的所有类(class)?尽可能多地使我的方法和属性protected虚拟是个好主意吗?在什么情况下你会避免protectedvirtual并使成员私有(private)。 最佳答案 你的类包括数据成员;对那些功能永远不会改变的数据成员执行基本内

c# - 使用 Moq 在 C# 中单元测试 protected 方法

我最近注意到,您可以使用Moq对抽象基类进行单元测试,而不是在测试中创建一个实现抽象基类的虚拟类。参见Howtousemoqtotestaconcretemethodinanabstractclass?例如。你可以这样做:publicabstractclassMyAbstractClass{publicvirtualvoidMyMethod(){//...}}[Test]publicvoidMyMethodTest(){//ArrangeMockmock=newMock(){CallBase=true};//Actmock.Object.MyMethod();//Assert//...

c# - EF Code First MigrateDatabaseToLatestVersion 从配置中接受连接字符串名称

在我的项目中尝试实现EF迁移时,我被困在一个地方。EFCodeFirstMigrateDatabaseToLatestVersion接受来自配置的连接字符串名称。在我的例子中,数据库名称在运行时已知(用户从下拉列表中选择它)。正如DbContext在其构造函数中接受ConnectionString或connectionStringName的方式,“MigrateDatabaseToLatestVersion”不接受相同的System.Data.Entity.Database.SetInitializer(newMigrateDatabaseToLatestVersion(connStr

c# - Entity Framework : The context is being used in Code First mode with code that was generated from an EDMX file

我正在使用EF6数据库优先方法开发一个WPF应用程序,我的解决方案中有一个项目,如果我运行我的项目,这个错误总是出现。上下文在代码优先模式下使用,代码是从数据库优先或模型优先开发的EDMX文件生成的。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用数据库优先或模型优先,请确保EntityFramework连接字符串包含在启动项目的app.config或web.config中。如果您要创建自己的DbConnection,请确保它是一个EntityConnection而不是其他类型的DbConnection,并且您将它传递给采用DbConnection的基本Db

c# - Code First Entity Framework - 更改连接字符串

如何更改代码优先EntityFramework/MVC应用程序中的连接字符串?我正在尝试将它转移到实时站点,但它忽略了Web配置值并且仍然引用我的本地版本的数据库。这是我的web.config的连接字符串部分:我不确定Entities字符串是否有任何相关性,因为我使用了CodeFirstEntityFramework,而且我认为它只在我尝试创建edmx文件时出现(尽管我最终只是删除了它)。Entities连接字符串已被注释掉,所以我认为它没有被使用。我想让EntityFramework读取“WebsiteConnectionString”,但它似乎想使用本地连接字符串,但我什至看不到设

c# - 内部 protected 属性(property)仍然可以从不同的程序集访问

我正在为有关辅助功能的初学者session设置一些演示代码,我发现我能够从派生类访问内部protected属性。我错过了什么?程序集1namespaceAccessibility{classProgram{staticvoidMain(string[]args){ExampleClassc=newExampleClass();c.Go();//c.Prop1=10;}}classExampleClass:DerivedClass{publicvoidGo(){this.Prop1=10;this.Prop2=10;//this.Prop3=10;//Doesn'twork//this.

c# - Code First 无法启用迁移

我正在尝试启用迁移,但它引发了异常:Checkingifthecontexttargetsanexistingdatabase...System.TypeInitializationException:Thetypeinitializerfor'System.Data.Entity.Migrations.DbMigrationsConfiguration`1'threwanexception.--->System.TypeInitializationException:Thetypeinitializerfor'System.Data.Entity.Internal.AppConfig