Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
> Indeed. It's EF poor design, that they try to rework in EF core. > Still there are plenty of workarounds for this. For example attaching > entities only by ids. Attaching by ID? It's still attaching... > DbContext is supposed to be used in request-response scenario (web > sites, for example), where context object is short-living object. Quite opposite. Short-living context is recommended in request-response scenarios. If you can keep the instance - like WPF, WinForms, etc. - the benefit of having the context to track what you're doing is great help. The context class itself was not designed to be used in any scenario in particular. It should work and works in all range of options .NET ecosystem offers. In fact, even just the disconnected scenario has at least like 3 options to tackle it. -- Mgr. Jiří Činčura Independent IT Specialist -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
> That doesn't make any sense. If I dispose context after query then I can't update the entities without attaching them to new context. Waste of resources. Indeed. It's EF poor design, that they try to rework in EF core. Still there are plenty of workarounds for this. For example attaching entities only by ids. DbContext is supposed to be used in request-response scenario (web sites, for example), where context object is short-living object. On 26 March 2016 at 11:20, Jiří Činčura wrote: >> > d) Do I need to dispose the the context on closing the window? >> Not only on that. you should create and dispose context for every >> action you do with a database: insert, delete, update, query etc. > > That doesn't make any sense. If I dispose context after query then I > can't update the entities without attaching them to new context. Waste > of resources. > >> > 3. As long the user does not explicit reload the data I am working >> > in a connected mode >> You don't have to be always connected for any reason. > > True. But for fat client type applications this is then way easier than > disconnected scenarios. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
> > d) Do I need to dispose the the context on closing the window? > Not only on that. you should create and dispose context for every > action you do with a database: insert, delete, update, query etc. That doesn't make any sense. If I dispose context after query then I can't update the entities without attaching them to new context. Waste of resources. > > 3. As long the user does not explicit reload the data I am working in > > a connected mode > You don't have to be always connected for any reason. True. But for fat client type applications this is then way easier than disconnected scenarios. -- Mgr. Jiří Činčura Independent IT Specialist -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
EF context is implementation of unit-of-work pattern, it is not repository pattern. > d) Do I need to dispose the the context on closing the window? Not only on that. you should create and dispose context for every action you do with a database: insert, delete, update, query etc. > 3. As long the user does not explicit reload the data I am working in a > connected mode You don't have to be always connected for any reason. On 25 March 2016 at 09:18, Jiří Činčura wrote: >> a) Is the method described above considered as good practice? > > From what you've written, yes. > >> b) Basically it is a connected Context until the user refreshes the data. >> In >> this case the context is recreated. > > No problem with that. > >> c) In order to manage multiuser environment, do I need to work generally >> with disconnected entities? > > No, you don't have to. > >> d) Do I need to dispose the the context on closing the window? > > Yes, you should. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
> a) Is the method described above considered as good practice? From what you've written, yes. > b) Basically it is a connected Context until the user refreshes the data. > In > this case the context is recreated. No problem with that. > c) In order to manage multiuser environment, do I need to work generally > with disconnected entities? No, you don't have to. > d) Do I need to dispose the the context on closing the window? Yes, you should. -- Mgr. Jiří Činčura Independent IT Specialist -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider