I'm using entity Framework.

I have an Class named "Child1"

I'm using 2 expression using Ctype and CTypeDynamic:

1)
Code:
Element=CType(Object1,Child1)
2)
Code:
Dim t as type
Dim s  as string = "MyProg1.Child1,MyProg1,Version=1.0.0, Culture=neutral,PublicKeyToken=null"
t=System.Type.GetType(s)
Element=CtypeDynamic(Object1,t)
I pass the element to this function ( entity parameter ):

Code:
Public Function CopyEntity(Of T As {Class, New})(ctx As MyEntities, entity As T, Optional copyKeys As Boolean = False) As T
   Dim clone As New T()
   Dim en = ctx.Entry(clone)
   en.State = System.Data.Entity.EntityState.Added
   ctx.Entry(clone).CurrentValues.SetValues(entity)
   en.State = System.Data.Entity.EntityState.Detached
   Return clone
 End Function
When I use Ctype to get the element , everything is working correctly with the function call.

When I use the second case ( with CTypeDynamic ) , when I call the function I get an error on this line :

Code:
Dim en = ctx.Entry(clone)


An unhandled exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll

Additional information: The entity type Object is not part of the model for the current context.
What's the problem in second case , because I want to make it work ( of course I don't want to change the logic of my code in second case , so the type is in a string variable first ).

Thank you !