Question: Why is this error happening when I save?

Model:

```
public class SingleEmail
    {
        [Key]
        public int MailID{get;set;}
        public string ToAddress{get;set;}
        public string Subject{get;set;}
        public string Body{get;set;}
    }

    public class MyDBContext : DbContext
    {

        public DbSet<SingleEmail> SingleEmail{get;set;}

    }

using (MyDBContext db = new MyDBContext())
{
    SingleEmail m = new SingleEmail();
    m.ToAddress = email.To[0].Address;
    m.Subject = email.Subject;
    m.Body = email.Body;

    db.SingleEmail.Add(m);
    db.SaveChanges();

}
            {

```

> 
> An error occurred while updating the
>  entries. See the inner exception for
>  details.;
> 
> 
> 
> ```
>     Invalid object name 'dbo.SingleEmails'.;
> 
> ```
> 
>

Answer: 
By default its simply not possible. Every solution will always copy the content into the current scope, because if not, there is no way to access it.

I dont know, what exactly want to do, but maybe you can do that "outside", for example as a [gearman](http://gearman.org/) job, and then just catch the results of the process, instead of the whole array.

You can also think about splitting the "big" array into slices and then always retrieve the part you currently need from an apc or memcached.
Edit:  

You are probably using shared memory wrong way.  

Your shared memory itself being such array. So you have to store **separate multilanguage strings** directly in shared memory, not big array with them.  

and then only pull strings, required on particular page.  

that's all. 

In general, to process some data, a program have to "duplicate" it, by storing it in a variable.  

That's what variables are for - to store (or "duplicate") some outside data.  

For example, if you have some user info in your database, to display a username on a web page you have to "duplicate" this data, storing it in PHP variable first.  

And so on. 

You are first who thinks that such approach needs to be changed.