has linq to sql has any major and known flaw?
The only shortcoming I see is the fact that there is no built-in support for Many-to-Many relationships.
Other than that, and the necessity to tweak certain LINQ to SQL queries for better SQL performance, no.
We've built our next generation software platform on L2S, and we're a $2.5B solar company. We've found it to be fairly easy to use, and performance has been very acceptable. No major shortcomings for us. Granted, there is no M2M support, but that hasn't been a huge issue for us. We wrote our own code generator that generates our own application level entities as well as our own custom L2S entities that has M2M support built in. We've very satisfied so far.
"Flaws?" No, not really.
Shortcomings? Perhaps:
- No support for Table-Valued Parameters;
- No support for many-to-many relationships;
- No support for CLR User-Defined Types;
- Spotty support for N-Tier scenarios (disconnected entities);
- Only works with SQL Server (no support for mysql, Oracle, etc.)
Of course, most people aren't affected by any of these, and some of these issues tend to affect all ORM tools.
Linq to SQL is a perfectly solid library. If it meets your requirements then there's no reason not to use it.
I blogged about some of the issues I ran into with LinqToSql a while back:
The drawbacks of adopting Linq To Sql
That is not a comprehensive list and I've run across additional issues since then. I haven't yet taken the time to write them up however.