我刚刚开始研究实体框架代码的第一种方法,我在下面写了两种方法,两种方法都运行正常.
请让我知道这两种方法背后的核心概念是什么,应该遵循什么?
方法1: 使用EntityTypeConfiguration
public class BlogsMap : EntityTypeConfiguration<Blog>
{
public BlogsMap(string schema)
{
ToTable("BLOG");
HasKey(t => t.BlogId);
Property(t => t.BlogId).HasColumnName("BLOGID");
Property(t => t.Name).HasColumnName("NAME");
Property(t => t.Url).HasColumnName("URL");
}
}
public class BlogContext : DbContext
{
public BlogContext(string name)
: base(name)
{
}
public IDbSet<Blog> BLOG { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BlogMap(string.Empty));
}
}
Run Code Online (Sandbox Code Playgroud)
方法2:
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 我正在使用 StructureMap 来解决依赖关系,这在旧版本中运行良好。但是在更新 StructureMap 版本 4.2.0.40 后,我遇到了这个错误。
ObjectFactory 现在在新版本中已过时。 那么如何修改以下逻辑以适应更新版本。
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
try
{
if ((requestContext == null) || (controllerType == null))
return null;
return (Controller)ObjectFactory.GetInstance(controllerType);
}
catch (StructureMapException)
{
System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw new Exception(ObjectFactory.WhatDoIHave());
}
}
Run Code Online (Sandbox Code Playgroud)
引导程序
public static class Bootstrapper
{
public static void Run()
{
ControllerBuilder.Current
.SetControllerFactory(new StructureMapControllerFactory());
ObjectFactory.Initialize(x =>
{
x.AddConfigurationFromXmlFile(@"D:\Samples\Web_API\OneCode\StructureMap.Web\StructureMap.Web\StructureMap.xml");
});
}
}
}
Run Code Online (Sandbox Code Playgroud) structuremap asp.net-mvc asp.net-mvc-4 structuremap3 structuremap4
我使用https://regex101.com/来测试我的下面的正则表达式,但是这个表达式允许<表达式中没有提到的<字符.
['!@#$%*\]\[()-=_+{}:\";?,.\/A-Za-z0-9\s]
Run Code Online (Sandbox Code Playgroud)