DataSource Controls :: Compromising With A DBA On Linq To SQL?
Apr 7, 2010
Whenever you want to implement Linq to SQL on a project there is inevitably a battle between the DBA and the developers over it.
From the developer standpoint, Linq to SQL eliminates the need to manually write stored procs, ADO.NET data access classes, business object classes, and datatable -> business object conversion classes. This makes development a breeze and eliminates a lot of the traditional layers that you'd normally have to code.
Alternately, from a DBA perspective there are some issues. One is that a lot of DBA's like to do security at the sproc level, and this level would be gone. Another issue is that if the DBA wanted to mimic some sql functionality that the application is doing, possibly for a scripted action, they wouldn't be able to simply call the sproc that the application is using. Also they wouldn't be able to tell which columns are actively being used and which are not, as it'd be C# code specifying which columns are returned rather than sprocs. Lastly, if something needed to be changed structurally, it'd require a recompile and redeploy of the entire app rather than a simple sql script of 2 being deployed.
There are valid points on both ends, so I'm wondering what experiences you all have with this and what sort of compromises you made. In my situation, I'm the developer and I'm trying to figure out a compromise I can make with the DBA so we both give a little rather than one of us having to completely bend over. The obvious compromise to me is using sprocs from within Linq to SQL, but it adds another layer of development and the sprocs have to coded a certain way to play nice with Linq to SQL.
I am writing a plugin to help with a current ERP system we have that I am not allowed to modify the data structure at all. The table I am dealing with has over 100 columns and I am wanting to set my linq object propertychanged event and submitchanges or do I really have list out each property and set it equal to the new one?Below is an example of what I am trying to do:
Like that I have large number of controls on my form. I have dought, if I assigned like this, db.usp_ATI_FetchPatientDetails(iPatientID).ElementAt(0).Last_Name.ToString(); to every control, then I have set of controls like,
My question is that, for each control the Stored Procedure called or not? If it is yes then it is time consuming and I need to use LINQ to DataSet or LINQ to Object rather than to call SP for each control. What is difference between LINQ to DataSet and LINQ to Object?
public IEnumerable<Customer> GetCustomers() { Table<Customer> custObject = context.Customers; IEnumerable<Customer> filteredCustList = from customer in custObject select customer; filteredCustList; } GridView2.DataSource = utilLinqClass.GetCustomers(); GridView2.DataBind();
(no errors at build time or at compile time) Error I am getting is: An attempt to attach an auto-named database for file App_Dataaspnetdb.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
I am trying to use a linq query to create a report and I am unclear on how to traverse the linq dataquery in my case. Inside my for each loop, i have a do while loop. The way it is written below, the do while loop is infinite because I never skip to the next itm in oneSchedule. Placing a Next inside the do while loop causes a syntax error. So what is the correct method for moving to the next itm within the loop?????
select * from MyTable select "MonthName"= case when datepart(month,date1) =1 then 'January' when datepart(month,date1) =2 then 'February' end , count(*) as CountByMonth from venkat group by datepart(month,date1)
I'm trying to "move" a LinqDataSource control to code behind to better control the query parameters. Problem I'm having is how does the "It" keyword translate to Linq To SQL syntax (not sure if I'm getting the terminology right here, but I think you get my meaning).
If I have an ID, I would like to retrieve the next item that also has the same category as the item ID I have. So, for example, if I have ID=2, I would like to return the item with ID=4 (as item ID=3 has a different category).
SELECT * FROM dc.accounts t1 INNER JOIN dc.profiles t2 ON t1.AccountID = t2.AccountID WHERE EXISTS ( SELECT * FROM dc.profileblocks t3 WHERE t3.AccountID = '14' and t1.AccountID = t3.AccountID )
I'm close to the solution I see where I am going wrong just unsure how to approach it. I want to be able to take a tables worth of data (via DataClasses) and put it in a CSV to download.
A LINQ to SQL query is performed (basically a 'Select All' from tbl_Newsletter), takes those results and the idea is to feed those results, one by one through the foreach which, inside it, is the CSV's definition e.g. List.Add(etc) as you'll see. After which the CSVExporter method is called - which works, as I can Download it, it just wont display any results.
C#: [Code]....
To which I get: Compiler Error Message: CS1729: 'Newsletter' does not contain a constructor that takes '2' arguments
with Newsletter obj = Newsletter.GetAll(); in place of Newsletter obj = new Newsletter();
I get: Compiler Error Message: CS0029: Cannot implicitly convert type 'System.Collections.Generic.List<Newsletter>' to 'Newsletter'
I am trying to set value to Textbox from the query Linq to SQL , I can fill the gridview , and I can only set FirstOrDefault to textbox
what I need to count the record of my table then add the field emailaddress to textbox1 and then add ";" and then go to next record , it was vert easy using reader , but in LINQ is very hard
I thought I'd read that LINQ to SQL performs operations on the user's behalf and acts pretty much in the same way as if you manually queried a database. I was told today that it can be considerably slower.Can anyone point me to a link or share their knowledge so I can help to build up a picture of what actually happens?
im trying to count the amount of users inside a chatroom, im trying to count a specific row using LINQ to SQL.
Heres the code
DataRowView dataRow = ((DataRowView)e.Item.DataItem); string roomId = dataRow["RoomID"].ToString(); ChatRoomDataContext db = new ChatRoomDataContext(); var query = from c in db.ChatLoggedInUsers where c.RoomID.ToString() == roomId.ToString() select new { }; foreach (var c in query) { }
Where " select new { }; " is, is left blank as i am not too sure what goes there. I tried adding c.UserName.Count() but i got an error. what i need to put into that space to count the amount of records in the UserName column?
I want to use from two db connection in one linq query
My sample is:
int a=1; if(a==1) DataClasses1DataContext1 db = new DataClasses1DataContext1(); else DataClasses1DataContext2 db = new DataClasses1DataContext2(); var q = from c in db.F_Groups select c;
In this code a=1 so db connection is DataClasses1DataContext1
I want if a=2 then db connection = DataClasses1DataContext2
but this code is error.
db connections is completely same but in two deferent class a db connection is sql and another is oracle