I am able to delete component using core service client, but when i am trying to create and save one, i get below mentioned exception.

	client.Open();
	BinaryContentData bcd = new BinaryContentData{
		UploadFromFile = fileInfo.Name,
		MultimediaType = new LinkToMultimediaTypeData(),
		Filename = fileInfo.Name,
		IsExternal = false};
	ComponentData compData = new ComponentData();
	compData.ComponentType = ComponentType.Multimedia;
	compData.BinaryContent= bcd;
	compData.LocationInfo = new LocationInfo() { OrganizationalItem = new LinkToOrganizationalItemData() {IdRef = folderuri}};	
	compData.Title = MakeValidFileName(fileInfo.Name);
	compData.Schema = new LinkToSchemaData() {  IdRef = schemauri };
	compData.ApprovalStatus = new LinkToApprovalStatusData {IdRef = "tcm:0-0-0" };
	compData.Id = "tcm:0-0-0";
	client.Save(compData, new ReadOptions());
	client.CheckIn(compData.Id, null);
	client.Close();

Any focus on the same is appreciated.

Event Viewer shows following logs :

Unexpected item type: Schema.
  

    

> Component: Tridion.ContentManager.CoreService Errorcode: 0 User: NT
> AUTHORITY\NETWORK SERVICE  StackTrace Information Details:    at
> Tridion.ContentManager.ContentManagement.RepositoryLocalObject.AssertValidContainer(IContainer
> container)    at
> Tridion.ContentManager.ContentManagement.RepositoryLocalObject.AssertValidContainer()
> at
> Tridion.ContentManager.ContentManagement.RepositoryLocalObject..ctor(Session
> session, TcmUri parentId)    at
> Tridion.ContentManager.ContentManagement.Component..ctor(Session
> session, TcmUri parentId)    at
> System.RuntimeMethodHandle.InvokeMethod(Object target, Object[]
> arguments, Signature sig, Boolean constructor)    at
> System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags
> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)  
> at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,
> Binder binder, Object[] args, CultureInfo culture, Object[]
> activationAttributes, StackCrawlMark& stackMark)    at
> System.Activator.CreateInstance(Type type, BindingFlags bindingAttr,
> Binder binder, Object[] args, CultureInfo culture, Object[]
> activationAttributes)    at System.Activator.CreateInstance(Type type,
> Object[] args)    at Tridion.ContentManager.Session.GetNewObject(Type
> objectType, String containerUri)    at
> Tridion.ContentManager.Session.GetNewObject(IdentifiableObjectData
> data)    at
> Tridion.ContentManager.CoreService.CoreServiceBase.Save(IdentifiableObjectData
> deltaData, ReadOptions readBackOptions)    at SyncInvokeSave(Object ,
> Object[] , Object[] )    at
> System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object
> instance, Object[] inputs, Object[]& outputs)    at
> Tridion.ContentManager.CoreService.CoreServiceInvoker.Invoke(Object
> instance, Object[] inputs, Object[]& outputs)    at
> System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&
> rpc)    at
> System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&
> rpc)    at
> System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&
> rpc)    at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean
> isOperationContextSet)

while Code level debugging gives following exception message and stack trace :

Server stack trace: 

       at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 

    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    at Tridion.ContentManager.CoreService.Client.ISessionAwareCoreService.Save(IdentifiableObjectData deltaData, ReadOptions readBackOptions)