|
Am no expert here but my general approach is that you create a context in a using block per action you need to perform. For example Adding an Order item to a database create a single context, add the order and order items using that context then commit the changes. This means that if you action has one part that fails then none of it will get committed, and reduces the overhead of creating the context to one per action the user takes not creating one per item that needs adding to the database.
I have also use EF in a service and it performs well enough for my needs, if it speeds up your development and performs well enough then why not use it.
|
|
|
|
|
With EF 4, you can work with straight POCO's. Here's a sample of a simple POCO.
public class Customer
{
public int CustomerID { get; set; }
public string FullName { get; set; }
public DateTime DateOfBirth { get; set; }
} Now, to expose it for others to use
public class MyContext : ObjectContext
{
public MyContext() : base("name="Myentities", "Myentities")
{
Customers = CreateObjectSet<Customer>();
}
public ObjectSet<Customer> Customers { get; private set; }
} And that's it - a basic simple POCO with context and very, very lightweight. If you want to use the POCO over WCF, just change it so that it looks like this:
[DataContract]
public class Customer
{
[Key]
[DataMember]
public int CustomerID { get; set; }
[DataMember]
public string FullName { get; set; }
[DataMember]
public DateTime DateOfBirth { get; set; }
}
|
|
|
|
|
I have a gridview with a buttonfield, and I would like to change the image URL of the field based on a condition of one of the fields. How do I reference the buttonfield?
|
|
|
|
|
Please, start asking ASP.NET questions in the ASP.NET forum. There are so many grid views that have different behaviours depending on what the underlying technology, that it we could quite easily give you the wrong answer.
Also, could you please change your user name? If you don't, you will end up being spammed.
Now, as to your question (and please let this be the last ASP.NET one that you ask in this forum), how you change your button field really depends on how you want to trigger the field change. If it's just based on when you are binding the data to the GridView, there is a RowDataBound event that you can hook into when each row is bound to data. What you would do in this method is find the field you want (here's a crude method):
private void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btnField = (Button)e.Row.FindControl("btnField");
}
}
|
|
|
|
|
i am facing the issue of The configuration section cannot contain a CDATA or text element.in asp.net 4.0 . can you help me.
|
|
|
|
|
Remove the CData-section and encode it's contents in Base64; that way you can still save your (binary?) data without the use of a section.
Bastard Programmer from Hell
if you can't read my code, try converting it here[^]
|
|
|
|
|
As PO'H said to one of your other questions just below, this has nothing to do with C#. Did you read #1 of "How to get an answer to your question" at the top of this forum? If you haven't, I suggest you read that whole message carefully.
Peter
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Hello ,
I am testing a very simple client/server socket application, using an asynchronous socket model.
When I am closing a connection on behalf of client side, I am first calling the Shutdown(..both) method on the socket and then the Close () method.
I am expecting a zero-length packet received on the server side , to signal the connection closing on the client side,and after this I call the Close () on the socket on the server side.
The truth is, I receive more than one zero-length packet on the server when I shut down the connection on the client side . Why does it happen ?
And how can it be since on the first zero-length packet I receive on the server , I close the server socket and no more packets should be received anymore ?
|
|
|
|
|
Closing a socket basically means that you will not use that socket for sending anymore. So you can still receive on it. This is why it is called a half close.
Don't know why you see more than one zero packet sizes. This should occur only once because it is an indication that the peer side has closed its connection.
|
|
|
|
|
Thank you Philip, by now I think I have found the problem.... probably it was caused by the fact that , inadvertedly, I was calling beginReceive() more than once, before calling the corresponding endReceive() for each beginReceive() .
In effect as I fixed this error it seems it doesn't happen anymore.
Thank you anyway for your support.
Leo
|
|
|
|
|
how to write events in asp.net like in windows forms leave events,key press event.
|
|
|
|
|
After a little look on google there are lots of solutions out there, a good search including what you need to do when the leave or keypress event would give you an answer. You may be best posting in the ASP.NET forum.
You could get started here.
|
|
|
|
|
|
Read the question carefully before attempting to answer.
|
|
|
|
|
For most events you want to add JavaScript client side event handlers. You can write server side event handlers on anything with runat=server but these cause the page to be posted back and reloaded, which is annoying to work with.
|
|
|
|
|
|
Recently when going to the Internet I have a delay in loading the page with res://ieframe.dll/navcancl.htm#http://localhost:2441/Error.aspx?ErrorId= showing in the address bar. I copied and searched online finding what seemns to point to spyware and phishing. I have AVG Internet Security (paid version). I recently started using Advanced System Optimizer as well. Appreciate any ideas of how to correct. Thank you!
Alagiri
modified 9-Aug-12 3:23am.
|
|
|
|
|
Even though your question has absolutely nothing to do with C#, I'll try to offer you some advice here. First of all, have you tried this in more than one browser? Secondly, I'm going to guess that you probably have Google toolbar installed. Disable it and see what happens.
|
|
|
|
|
Thanks for instant support. i have checked in explorer, Google toolbar is not installed.i am using asp.net, while i am runing the page the error will throwing.
|
|
|
|
|
Okay, so it sounds like you are getting an exception in there which is causing a redirect to the error page, and this Advanced System Optimiser thinks that you are trying to navigate to a phishing page, so it's cancelling the navigation.
To get around this, try switching this Optimiser off while you are running the ASP.NET application; make sure that it really is gone from memory - this could mean stopping the service that it's running under.
|
|
|
|
|
Hi all, I am trying to convert a word doc to type byte so I can send it to the database. I am also trying to send the data to the database without having to first save the converted data on a disk by using a memorystream object. The following is the code snippet I've found online for doing that but I don't quite understand the last line to make use of it:
MemoryStream ms = new MemoryStream();
byte[] bytes = File.ReadAllBytes("fileOnDisk.doc");
ms.Write(bytes, 0, bytes.Length);
Below is my insert function without the connection, command, and parameter objects listed. The last few lines are what I plan to use to insert the file into the database. What I would like to know is how do I pass a memorystream object to the insert function. Thank you in advance for your help.
public void InsertDoc(string Path, byte myFile)
{
param = new OleDbParameter("@File", myFile);
oCommand.Parameters.Add(param);
oCommand.CommandText = "AddDoc";
oCommand.CommandType = CommandType.StoredProcedure;
oCommand.ExecuteNonQuery();
sqlConn.Close();
}
|
|
|
|
|
In the method declaration for InsertDoc , change byte to byte[] so that you are passing in the byte array.
|
|
|
|
|
Hi Pete, thanks for pointing that out but that is what I already have but forgot to type it i when I created this post. The question now is how do I send the memorystream object to the database.
modified 9-Aug-12 4:33am.
|
|
|
|
|
Fair enough, but in future, please try to give us the real code, rather than having us waste your time correcting a problem that doesn't exist.
If all you are trying to do is pass the MemoryStream instead of the byte[] , then just change the parameter, and work with that. But, as you are reading from disk into a byte array, this is a pretty useless conversion step. If, however, you are trying to avoid the creation of the file, and you already have a populated MemoryStream , then you need to create a byte array and populate it from the MemoryStream like this:
byte[] data = new byte[ms.Length];
ms.Read(data, 0, ms.Length);
|
|
|
|
|
Thanks, it seems to be working but I had to modify your code to
byte[] data = new byte[ms.Length];
ms.Read(data, 0, data.Length)
|
|
|
|