我想确定每个请求结束后,structuremap是否会处理我的DataContext.
这是我的设置
ForRequestedType<MyDataContext>().TheDefault.Is.OfConcreteType<MyDataContext>();
SelectConstructor<MyDataContext>(() => new MyDataContext());
Run Code Online (Sandbox Code Playgroud)
结构图会自动处理我的datacontext还是我需要手动调用Dispose?
这是我的模块
internal class WebServiceConfiguration : NinjectModule
{
public override void Load()
{
Bind<IWebService>().To<WebService>().InRequestScope();
}
}
Run Code Online (Sandbox Code Playgroud)
这是global.asax
public class Global : NinjectHttpApplication
{
protected override IKernel CreateKernel()
{
return new StandardKernel(new WebServiceConfiguration());
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过InScope(c => OperationContext.Current)
这是我在IWebService中使用IDisposable的服务
[ServiceBehavior(InstanceContextMode = InstanceContextModeDefinition.Mode)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WebService : IWebService
{
private readonly ISomeService _someService;
public WebService(ISomeService someService)
{
_someService = someService;
}
public void Dispose()
{
_someService.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
这是服务标记中的ServiceHostFactory
<%@ ServiceHost Language="C#" Debug="true" Factory="Ninject.Extensions.Wcf.NinjectDataServiceHostFactory" Service="WCFTest.Services.WebService" CodeBehind="WebService.svc.cs" %>
Run Code Online (Sandbox Code Playgroud)
注入依赖项有效.我唯一关心的是当客户端关闭服务调用时没有触发dispose方法.
我试图删除Factory ="Ninject.Extensions.Wcf.NinjectDataServiceHostFactory"只是为了测试是否会调用Dipose,它确实调用但当然我不会自动注入.所以我可能会在设置中出错?或者ninject没有调用Dispose的错误?
注意:我在ninject …
我的数据库具有不同的模式,具体取决于运行时的用户选择
我的代码如下:
public partial class FashionContext : DbContext
{
private string _schema;
public FashionContext(string schema) : base()
{
_schema = schema;
}
public virtual DbSet<Style> Styles { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlServer(@"Server=.\sqlexpress;Database=inforfashionplm;Trusted_Connection=True;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Style>()
.ToTable("Style", schema: _schema);
}
}
Run Code Online (Sandbox Code Playgroud)
经过测试.我用'schema1'创建了一个上下文实例.到现在为止还挺好.
但是当我使用不同的模式'schema2'创建另一个上下文实例时,模式仍然在'schema1'上的结果数据.
这是实施:
using (var db = new FashionContext("schema1"))
{
foreach (var style in db.Styles)
{
Console.WriteLine(style.Name);
}
}
Console.ReadLine();
Console.Clear();
using (var db = new FashionContext("schema2"))
{
foreach (var …Run Code Online (Sandbox Code Playgroud) 我正在关注monodroid教程中的微调器.但是在资源上遇到了问题.
它无法在VS 2010上查找SimpleSpinnerItem和SimpleSpinnerDropDownItem.我错过了什么吗?
编辑:根据jonp创建一个部分类来注册android运行时
public partial class Resource
{
public partial class Layout
{
[Register("simple_spinner_dropdown_item")]
public const int SimpleSpinnerDropDownItem = 17367049;
[Register("simple_spinner_item")]
public const int SimpleSpinnerItem = 17367048;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑2:尝试了全球资源

编辑3:我的项目命名空间冲突
我已经确定了为什么const无法识别.这是因为我的命名空间projectname.Android,它是重复的.当我将其更改为projectname.AndroidMobile时,全局资源就在那里.
请参阅下面的冲突.

另外,为了避免冲突,只需使用global :: as jonp
我无法弄清楚为什么这会导致EF错误:在EF中保存时,列名"User_UserId"无效.
这是我的模型:
[DataContract(IsReference = true)]
public class User
{
[Key]
[DataMember]
public virtual Guid UserId { get; set; }
[DataMember]
public virtual string Username { get; set; }
[DataMember]
public virtual string Password { get; set; }
[DataMember]
public virtual string Email { get; set; }
[DataMember]
public virtual ICollection<FriendList> FriendLists { get; set; }
}
[DataContract(IsReference = true)]
public class FriendList
{
[Key]
[DataMember]
public virtual Guid FriendListId { get; set; }
[DataMember]
[ForeignKey("User")]
public virtual Guid UserId { …Run Code Online (Sandbox Code Playgroud)