使用连接到SQL Server 2008 R2 DB的EF5 Code First和Generic Repository / UOW模式,当通过app config在连接字符串中输入无效的服务器条目时,不会抛出无效的连接异常 - 它通过模型创建方法运行没有任何反应,我期待抛出一个异常,我可以抓取并将信息返回给用户,
有没有人知道为什么不抛出异常。
我在下面包含代码示例
提前致谢
标记
BaseFootballContext,它接收连接字符串(如果我传入一个无效的字符串,指向我无法通过查询管理工具连接的服务器
public class BaseFootballContext : DbContext
{
public BaseFootballContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
Configuration.LazyLoadingEnabled = false;
Configuration.ProxyCreationEnabled = false;
Configuration.AutoDetectChangesEnabled = false;
}
public IDbSet<Booking> Bookings { get; set; }
// other IDbSets exist
/// <summary>
/// Set Primary Keys and other properties here using Fluent API
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Booking>()
.Property(x => x.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Booking>().HasKey(x => x.Id);
modelBuilder.Entity<Booking>().Property(x => x.Version).IsRowVersion();
modelBuilder.Entity<Booking>().Ignore(x => x.IsBrief);
modelBuilder.Entity<Booking>().Property(x => x.ModifiedDate).HasColumnType("datetime2");
modelBuilder.Entity<Booking>().Property(x => x.CreatedDate).HasColumnType("datetime2");
}
}
我没有异常处理链,当调试它进入模型创建方法并且正常进行时,期待在这里抛出连接异常。
答案 0 :(得分:0)
(从评论转移)Mark列出的进程不会触发数据库初始化或调用数据库。然后他确认他正在对上下文执行查询,该查询确实会触发对数据库的调用,并且应该抛出异常以提醒他连接字符串的问题。因此,问题变成了追捕被吞噬的例外情况。超时错误。请参阅上述评论中的详细信息。