WRT different model per tennat in Aspnet 5, you didn't really show how that would work.
Actually, currently in our situation it would be single model per tennant however, different connection string. I assume there is some way with the Aspnet 5 container to inject runtime values rather than configuring a single connection string in configureServices?
But, it might be nice to have different model per tennant.
Please, someone that cares about the quality of VS 2010 get this back ported and released as a hot fix or patch. I can deal with VS being slow and hanging for seconds every now and then... but stopping to respond to the keyboard and mouse clicks is not acceptable.
Yes, it is an exiciting feature. My concern is about the security trace: is it possibile to trace the current user application name ?
Normally we connect application to SQL using a unique trusted connection (windows authentication), but we are interested to log all db changes along with the current logged (application) user; otherwise we know the db changes but not who made them.
With triggers we would do this by getting the user_name from sql and we could insert it into the audit tables. This works well as long as you have a two tier application with each user having thier own connection.
With 3-Tier or web apps you are unable to use the user_name since you are probably using a single user id or connection pooling. So, what we would do is add a field or fields to each table that the application would populate on each insert/update. This way
the audit data could capture who made the change. For delete I guess you would have to get creative like not allowing record deletes and just setting a delete flag... or you could update the record with all blank/null values prior to deleting it.
I would assume that you could do a similar thing with CDC?
MS had a web cast on this... can't remember if it was on EntityFW or on LINQ to SQL... but the [main] differences as it explained them:
Linq to SQL
1. Only suports SQL Server
2. One to one mapping from Table to Object (although the Linq to SQL designer does seem to have inheritence stuff in it... so I'm not sure if this is 100% true.)
1. Provider based data model to support multiple back ends.
2. An object (entity) can be mapped to multiple tables.
This tells me I need to be using the EntityFramework. Item 1 doesn't bother me since all of my projects are SQL server. But, I want to do DDD and it doesn't look like Linq to SQL is really designed for that.
So, I still don't understand why we (Microsoft) have both projects. I think the Linq to SQL should be dropped and all resources should be invested in the EntityFramework. It has better design goals and is a superset of Linq to SQL.
I do have a question though. Currently in VS 2008 Beta 2 there is a new item which is LINQ to SQL which creates a couple files including a mapping to the database which can be queried using LINQ. You also get a design surface that looks similar to the
Entities Design Surface.
What are the differences between the two (ie, why do they both exist) and why would one use one or the other?
Excellent question. It seems like MS has been trying to give us an O/R Mapping type product/services since the Object Spaces annoucment. Since then it has been false start after false start. I remember that Italian guy doing a C9 demo on Object Spaces years
ago... where did he go?
Now, it seems like you have two competing technologies that actually might ship. I see alot of overlap between the two and also each has some features the other doesn't have.
Do these two teams know about each other? Why not merge the projects and come up with a single, consistent set of libraries to solve the problem of moving data from relational to object model.
Also, is there an Object first design paradim that you can do. I understand why all of these demos reverse engineer a db... but, can I create an object model first and then have in create my schema for me?
The LINQ to SQL objects also have partial method hooks that allow you to add business rules/validations to them. Is there anything like that in the Entities? Are the entities designed to also be the DTO's or are the entities just a way to tell link how to shape
the objects that are returned from queries.